petle for w C

0

Czesc,

Proszę o drobny komentarz dotyczący mojego mini-programiku. Nie moge rozgryzc dlaczego nie chce sie skompilowac.
Ps. Programuje dopiero od jakiś 2 tyg, wiec badzcie wyrozumiali :)

#include<stdio.h>

float srednia_ocen_kazdego_ucznia[6];
int nr_ucznia;
float suma_srednej_ocen_calej_klasy;
float suma;
float srednia_ocen_calej_klasy;

int main()
{
	for(nr_ucznia = 0; nr_ucznia < 6; nr_ucznia++)
	{
		printf("Podaj srednia ocen ucznia nr%d: \n", nr_ucznia);
		scanf("%f", &nr_ucznia);
		srednia_ocen_kazdego_ucznia[nr_ucznia];
	}

	suma = 0;
	for(nr_ucznia = 0; nr_ucznia <6; nr_ucznia++)
	suma_srednej_ocen_calej_klasy = suma + srednia_ocen_kazdego_ucznia[nr_ucznia];
	printf("Suma sredniej ocen calej klasy wynosi: %f\n", suma_srednej_ocen_calej_klasy);
	srednia_ocen_calej_klasy = suma_srednej_ocen_calej_klasy / 6;
	printf("Srednia ocen calej klasy wynosi: %f\n", srednia_ocen_calej_klasy);

	getch();
	return 0;
}
0

a podałbyś jakiś błąd może który dostajesz?

na oko brakuje #include <conio.h> potrzebne do getch().

0
        for(nr_ucznia = 0; nr_ucznia < 6; nr_ucznia++)
        {
                printf("Podaj srednia ocen ucznia nr%d: \n", nr_ucznia);
                scanf("%f", &nr_ucznia);
                srednia_ocen_kazdego_ucznia[nr_ucznia];
        }

Próbujesz wywołać zmienną traktując jako instrukcję, tak to nie da rady. Poza tym, lecisz po kolejnych numerach uczniów, a liczba, którą wpisze użytkownik, będzie zapamiętana pod "nr_ucznia", co jest trochę bez sensu.

Moim zdaniem powinno być tak:

        for(nr_ucznia = 0; nr_ucznia < 6; nr_ucznia++)
        {
                printf("Podaj srednia ocen ucznia nr%d: \n", nr_ucznia);
                scanf("%f", &srednia_ocen_kazdego_ucznia[nr_ucznia]);
        }
0
  1. Dodaj #include <conio.h> (jak pod windowsem, jak pod unixem to usuń getch())
  2. inicjuj zmienne podczas deklarowania np. float suma = 0;
  3. Zmień nazewnictwo zmiennych bo to jest tragedia,
  4. Jak napisał andrzej: srednia_ocen_kazdego_ucznia[nr_ucznia]; tylko przelatuje po kolejnych polach tablicy niczego nie robiąc przenieś to do: scanf("%f", &srednia_ocen_kazdego_ucznia[nr_ucznia])
  5. Drugi "blok" po 1-szym for nie ma sensu: suma średniej ocen całej klasy będzie wyświetlona 6 razy co nie ma sensu, pomyśl nad tym, (zdaje mi się że nie potrzebne jest for),
  6. Opakuj to może w funkcje ładniej kod będzie wyglądał.
  7. A i następnym razem dodaj też komunikaty jakie podaje ci kompilator albo wygoogluj je :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1