Programarea Calculatoarelor, seria CC
Program care citește un număr
Rezolvare:
Să incepem prin identificarea pașilor ce îi avem de parcurs pentru a rezolva problemei:
Fie
n5 = 0
pentru i de la 1 la N cu pasul 1
dacă (V[i] < 5) atunci
n5 = n5 + 1
procent = n5 * 100 / N
afișează procent
Programul
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int N, v[100], i, n5;
6 float procent;
7
8 printf("N = "); /* afisam un mesaj pentru utilizator */
9 scanf("%d", &N); /* citim numarul de note ce vor fi introduse de la
10 tastatura */
11 for (i = 0; i < N; i++) {
12 printf("v[%d] = ", i);
13 scanf("%d", &v[i]); /* citim a i-a nota */
14 }
15
16 /* in n5 vom numara cate note mai mici ca 5 au fost citite */
17 n5 = 0; /* initializam n5 */
18 for (i = 0; i < N; i++) /* parcurgem vectorul de note */
19 if (v[i] < 5) /* si daca gasim o nota mai mica decat 5 */
20 n5++; /* vom incrementa n5 */
21
22 /* aplicam formula de calculare a procentului: cum n5, 100 si N sunt de tip
23 * int, daca nu am converti una din ele la float, s-ar face impartire
24 * intreaga */
25 procent = (float)n5 * 100 / N;
26
27 printf("procent = %.3f\n", procent);
28
29 return 0;
30 }
Program care citește un șir de numere (pozitive și negative) și afișează media aritmetică a numerelor pozitive și media aritmetică a numerelor negative. (Atenție la situația când toate numerele au același semn!).
Intrare | Ieşire |
5 -2 3 5 -7 11 |
MP = 6.33 MN = -4.5 |
5 2 3 5 7 11 |
MP = 5.6 MN = nu se poate calcula |
Program pentru determinarea valorii minime dintre toate valorile maxime pe liniile unei matrice de numere reale (punct in "șa").
Intrare | Ieşire |
4 4 2 17 1 4 9 2 11 3 1 8 5 6 8 9 3 4 |
8 |
Se citesc 2 matrice A (
Intrare | Ieşire |
2 1 1 2 1 3 1 2 3 |
2 3 1 2 3 2 4 6 |
Hint: Veți parcurge cei 2 vectori in paralel și veți construi un nou vector, la care veți adăuga, pe rând, câte un element din primul sau din al doilea vector (în funcție de care dintre ele este mai mic).
Intrare | Ieşire |
5 6 2 4 9 12 14 1 3 5 8 9 11 |
1 2 3 4 5 8 9 9 11 12 14 |
Intrare | Ieşire |
4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
14 11 15 8 12 16 |
Program pentru afișarea celei mai lungi secvențe de elemente consecutive ordonate crescător dintr-un vector dat.
Intrare | Ieşire |
9 5 3 6 2 4 6 8 4 1 |
2 4 6 8 |
Program pentru afișarea secvenței de elemente consecutive de sumă maximă dintr-un vector.
Intrare | Ieşire |
12 5 0 -1 -4 2 8 3 -1 2 -5 -8 4 |
2 8 3 -1 2 |