Se consideră tabloul Note [26], în care au fost înregistrate notele obţinute de elevii unei clase la
lecţia de informatică. Să se scrie un program care numără (separat) notele de 8, 9 şi 10.( Se vor
utiliza subprograme fără tip la citirea tabloului și calcularea notelor)
IMI TREBUIE URGENT IN LIMBAJUL C!!!
Răspunsuri la întrebare
Răspuns:
#include <stdio.h>
void numara_note(int* vector_note, size_t dimensiune_vector);
int main(void) {
// aici te poți juca, ori ai un vector inițializat deja cu note ori îl citești de la tastatură...
int vector_note[] = {10, 1, 2, 2, 2, 4, 5, 5, 2, 3, 4, 5, 6,
7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10};
numara_note(vector_note, sizeof vector_note / sizeof(int));
return 0;
}
void numara_note(int* vector_note, size_t dimensiune_vector) {
// vector în care vom salva de câte ori apare o notă
int frecventa_note[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
// parcurgem vectorul de note
for (size_t i = 0; i < dimensiune_vector; ++i) {
// dacă nota e diferita de 8, 9 sau 10 trecem la următoarea iterație
if (vector_note[i] != 8 && vector_note[i] != 9 && vector_note[i] != 10)
continue;
// aici, de ex, dacă nota este 8 vom indexa valoarea de pe indexul 7 al vectorului
frecventa_note[vector_note[i] - 1]++;
}
// și la final vectorul nostru de frecvențe va arăta ceva de genul
// {0, 0, 0, 0, 0, 0, 0, 3, 4, 6}
// și afișăm valorile
printf("Sunt %d note de %d, %d note de %d si %d note de %d!\n",
frecventa_note[7], 8, frecventa_note[8], 9, frecventa_note[9], 10);
return;
}