- Sa se scrie un program care citeste o succesiune de linii ce
contin date calendaristice în formatul: zi/luna/an. Se cere sa se afiseze
liniile scrise corect conform formatului specificat anterior.
#include <stdio.h>
void main(void)
{
char linie[80];
int zi, luna, an;
while (gets(linie)!=NULL)
if (sscanf(linie, "%d/%d/%d", &zi, &luna, &an)==3)
printf("%s\n", linie);
}
- Sa se realizeze programul care citeste o secventa de numere
reale, terminata cu Ctrl-Z si afiseaza dupa fiecare citire suma valorilor
absolute citite pâna în acel moment. Afisarea sumei se face cu o precizie
de 3 cifre zecimale.
#include <stdio.h>
#include <math.h>
void main(void)
{
double suma=0, valoare;
while(1)
{
printf("\nDati un numar: ");
if (scanf("%lf", &valoare)==EOF) break;
printf("\t %.3lf\n", suma+=fabs(valoare));
}
}
Observatie: Unii autori recomanda, pe cât posibil,
evitarea unei bucle while(1) si iesirea prin instructiunea
break, deoarece prin aceasta practica se distruge lizibilitatea
programelor. Conditia de iesire din bucla e bine sa apara ca si
conditie pentru while, chiar daca aceasta înseamna
lungirea cu 2-3 linii a secventei.
- Se citeste de la tastatura un text terminat cu Ctrl-Z. Se cere sa se
afiseze toate numerele întregi continute în text.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define N 15
void main(void)
{
char c; /* caracterul citit la un moment dat */
char s[20]; /* buffer cu caract. ce compun un numar */
int numere[N]; /* tablou cu numerele citite */
int i=0, j=0;
c=getchar();
while (c!=EOF)
if (isdigit(c)) /* incepe un numar */
{
i=0;
s[i++]=c;
while (isdigit(c=getchar()))
s[i++]=c;
s[i]='\0';
numere[j++]=atoi(s);
}
else
c=getchar();
/* afisarea numerelor */
for (i=0; i<j; i++)
printf("\n %6d", numere[i]);
}
Observatie: Pentru a testa daca un caracter este cifra s-a
folosit functia isdigit() declarata în fisierul antet
ctype.h (va fi prezentata în capitolele urmatoare). Dupa
ce s-au citit caracterele corespunzatoare unui numar, folosind
functia atoi se face conversia în numarul întreg
corespunzator. Numerele întâlnite în cadrul textului se memoreaza
în tabloul numere.