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.
- Programul 020 - Citire caracter cu scanf si afisare cod ASCII
#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.
- Programul 021 - Nume si prenume cu afisare pe randuri diferite
#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.
- Programul 022 - Intreg zecimal cu afisare 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.
- Programul 023 - Intreg zecimal de max 9 cifre cu afisare 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:
- citeste o data calendaristica sub forma:
zzllaa
- afiseaza data respectiva sub forma:
20aa/ll/zz
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. |
- Programul 024 - Data calendaristica citita si afisata
#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:
- I - intrare;
- E - iesire;
- T - transfer;
UM este compus dintr-o valoare (un numar intreg) si o unitate de masura (sir de 2 caractere).
- Programul 025 - Citire si afisare rand de date de diferite categorii
#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.