Sunteți pe pagina 1din 3

Exemple de exerciții rezolvate la tema ”Instrucțiuni repetitive în limbajul C”

(pentru aplicarea în practică a programelor propuse se recomandă utilizarea compilatorului on-line, accesând
adresa https://www.onlinegdb.com/online_c_compiler# )

Notă: Fiecare exercițiu propus este rezolvat prin 3 variante:


a) cu instrucțiunea While
b) cu instrucțiunea Do-while
c) cu instrucțiunea For

1) Afișarea valorilor din intervalul numerelor întregi 1..10.


a)
#include <stdio.h>
void main ()
{ int N=1;
while (N<=10) { printf ("%d ", N); N++; }
}
b)
#include <stdio.h>
void main ()
{ int N=1;
do { printf ("%d ", N); N++; } while (N<=10)
}
c)
#include <stdio.h>
void main ()
{ int N;
for (N=1; N<=10; N++) printf ("%d ", N);
}

2) Afișare produs al 2 numere întregi, fără utilizarea operației de înmulțire.


a)
#include <stdio.h>
void main ()
{ int a, b, i = 0, c = 0;
printf ("Introduce 2 numere pentru a afla produsul lor: ");
scanf ("%d %d", &a, &b);
while (i < b) { c=c+a; i++; } ;
printf ("Produsul numerelor introduse este %d", c);
}
b)
#include <stdio.h>
void main ()
{ int a, b, i = 0, c = 0;
printf ("Introduce 2 numere pentru a afla produsul lor: ");
scanf ("%d %d", &a, &b);
do { c=c+a; i++; } while (i < b) ;
printf ("Produsul numerelor introduse este %d", c);
}
c)
#include <stdio.h>
void main ()
{ int a, b, i = 0, c = 0;
printf ("Introduce 2 numere pentru a afla produsul lor: ");
scanf ("%d %d", &a, &b);
for (i=0; i < b; i++) { c=c+a; } ;
printf ("Produsul numerelor introduse este %d", c);
}

3) Afișare rezultatului expresiei BE, având baza B și exponentul E valori întregi, fără utilizarea funcției pow.
a)
#include <stdio.h>
void main ()
{ int B, E; long long Rezultat;
printf ("Introduce baza B și exponentul E dorite: ");
scanf ("%d %d", &B, &E);
Rezultat=1;
while (E != 0) { Rezultat *= B; --E;}
printf ("Rezultatul expresiei este %lld ", Rezultat);
}
b)
#include <stdio.h>
void main ()
{ int B, E; long long Rezultat;
printf ("Introduce baza B și exponentul E dorite: ");
scanf ("%d %d", &B, &E);
Rezultat=1;
do { Rezultat *= B; --E;} while (E != 0);
printf ("Rezultatul expresiei este %lld ", Rezultat);
}
c)
#include <stdio.h>
void main ()
{ int B, E; long long Rezultat;
printf ("Introduce baza B și exponentul E dorite: ");
scanf ("%d %d", &B, &E);
for (Rezultat=1; E!=0; --E) { Rezultat *= B; } ;
printf ("Rezultatul expresiei este %lld ", Rezultat);
}

4) Afișarea tuturor divizorilor unui număr întreg pozitiv N.


a)
#include <stdio.h>
void main ()
{ int N, i;
printf ("Introduce un număr întreg pozitiv: ");
scanf ("%d", &N);
printf ("Divizorii numărului %d sunt: ", N);
i = 1;
while (i <= N) { if (N % i == 0) printf ("%d ", i); ++i; }
}
b)
#include <stdio.h>
void main ()
{ int N, i;
printf ("Introduce un număr întreg pozitiv: ");
scanf ("%d", &N);
printf ("Divizorii numărului %d sunt: ", N);
i = 1;
do { if (N % i == 0) printf ("%d ", i); ++i; } while (i <= N);
}
c)
#include <stdio.h>
void main ()
{ int N, i;
printf ("Introduce un număr întreg pozitiv: ");
scanf ("%d", &N);
printf ("Divizorii numărului %d sunt: ", N);
for (i = 1; i <= N; ++i) if (N % i == 0) printf ("%d ", i);
}

5) Afișarea sumei numerelor reale introduse repetitiv, cât timp nu este introdus numărul 0 (zero).
a)
#include <stdio.h>
void main ()
{ double n, suma= 0;
while (n != 0) { printf ("Introdu un număr: "); scanf ("%lf", &n); suma += n; } ;
printf ("Suma numerelor introduse este %.2lf", suma);
}
b)
#include <stdio.h>
void main ()
{ double n, suma= 0;
do { printf ("Introdu un număr: "); scanf ("%lf", &n); suma += n; } while (n != 0);
printf ("Suma numerelor introduse este %.2lf", suma);
}
c)
#include <stdio.h>
void main ()
{ double n, suma=0;
for ( ; n != 0; ) { printf ("Introdu un număr: "); scanf ("%lf", &n); suma += n; }
printf ("Suma numerelor introduse este %.2lf", suma);
}