2.6.10. EXERCITII cu scanf

2019/01/19 in Programare in C

Exercitii:

2.16. Sa se scrie un program care citeste un caracter de la terminalul standard cu scanf si afiseaza codul ASCII al caracterului respectiv.

#include <stdio.h>
#include <conio.h>

main()
{
    char car;
	scanf("%c",&car);
	printf("%d\n",car);
    puts("Actionati o tasta pentru a continua");
    getch();
}

2.17. Sa se scrie un program care citeste numele si prenumele unei persoane separate prin spatii albe, apoi afiseaza prenumele pe un rand si numele pe randul urmator.

#include <stdio.h>
#include <conio.h>

main()
{
    char nume[255],prenume[255];

    scanf("%s %s", &nume, &prenume);
    puts(prenume);
    puts(nume);
    puts("Actionati o tasta pentru a continua");
    getch();
}

2.18. Sa se scrie un program care citeste un intreg zecimal de cel mult 4 cifre si il afiseaza in zecimal, octal si hexazecimal.

#include <stdio.h>
#include <conio.h>

main()
{
    int n;

    scanf("%4d\n",&n);
    printf("%d\n",n);
    printf("%o\n",n);
    printf("%x\n",n);
    puts("Actionati o tasta pentru a continua");
    getch();
}

2.19. Sa se scrie un program care citeste un intreg zecimal de cel mult 9 cifre si il afiseaza in zecimal, octal si hexazecimal.

#include <stdio.h>
#include <conio.h>

main()
{
    long i;

    scanf("%9ld\n",&i);
    printf("%ld\n%lo\n%lx\n", i, i, i);
    puts("Actionati o tasta pentru a continua");
    getch();
}

2.20. Sa se scrie un program care:

unde:

zz - doua cifre care reprezinta ziua din luna: 01, 02,..., 31;
ll - doua cifre care reprezinta numarul lunii: 01, 02,..., 12;
aa - doua cifre care reprezinta ultimele cifre ale unui an calendaristic care incepe cu 20.

#include <stdio.h>
#include <conio.h>

main()
{
    int zi, luna, an;

    scanf("%2d %2d %2d",&zi,&luna,&an);
    printf("20%02d\\%02d\\%02d\n", an, luna, zi);
    puts("Actionati o tasta pentru a continua");
    getch();
}

Observatie: La afisare s-a folosit specificatorul de format: %02d, care afiseaza cifrele cu un 0 nesemnificativ in fata. Deci cifrele: 0, 1, ..., 9 vor fi afisate: 01, 02, ..., 09.

2.21. Sa se scrie un program care citeste datele de mai jos si apoi afiseaza tipul operatiei citite pe un rand, iar celelalte date pe randul urmator:

Tip operatie Denumire UM Cod Pret Cantitate
I Rezistenta 010KO 123456789 15 1000

Tip operatie este un caracter:

UM este compus dintr-o valoare (un numar intreg) si o unitate de masura (sir de 2 caractere).

#include <stdio.h>

#define MAXDEN 30

main()
{
    char tip[2];
    char den[MAXDEN+1];
    int val;
    char unit[3];
    long cod;
    float pret, cantitate;

    scanf("%1s%30s %03d%s %ld %f %f",tip,den,&val,unit,&cod,&pret,&cantitate);
    printf("%s %s %03d%s %ld %f %f\n",tip,den,val,unit,cod,pret,cantitate);
}

Observatie: La citirea caracterului Tip operatie se foloseste specificatorul de format %1s. Acesta permite eliminarea eventualelor caractere albe care ar putea precede litera care defineste Tipul operatiei.

3. Expresii