[C] Program losujący studentów i oceny

pgslok
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 29 gru 2014, o 21:33
Płeć: Mężczyzna
Lokalizacja: Białystok

[C] Program losujący studentów i oceny

Post autor: pgslok »

witam wszystkich. Mam prace domową:"Wylosuj liczbę studentów (max 15) oraz ich oceny (2,3,4,5). Zapisz je w tablicy. Jaka jest średnia ocen? Ile jest ocen niedostatecznych?"

Napisałem, ale raz działa, a raz program przestaje działać:

Kod: Zaznacz cały

#include <stdio.h>
int main(){
	int roz,tab[roz],suma=0,i;
	float srednia;
	srand(time(NULL));
	roz=rand()%16;
	
	for(i=0;i<roz;i++)
	tab[i]=rand()%4+2;
	for(i=0;i<roz;i++)
	printf("%d
",tab[i]);
	
	for(i=0;i<roz;i++)
	suma=suma+tab[i];
	srednia=(float)suma/(float)roz;
	printf("srednia wynosi %.2f
",srednia);
	
	return 0;
	
	
}


Jak zapisać program jakbym możliwe oceny to (2,3,3.5,4,4.5,5)?
Ostatnio zmieniony 30 gru 2014, o 11:37 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C] Program losujący studentów i oceny

Post autor: kalwi »

poczytaj coś o tworzeniu tablic - już w 3 linijce masz duży błąd (nie możesz tworzyć tablicy, gdy nie znasz jej rozmiaru - zmienna roz nie jest określona)
A druga sprawa, to chyba do funkcji rand() należało dodawać bibliotekę stdlib, jeśli dobrze pamiętam (chociaż niektóre środowiska same dodają tą bibliotekę, ala codeblocks)
Dalej, po co tworzyć osobnego fora na wyświetlenie wylosowanych ocen - nie lepiej wrzucić tego printfa do fora z linijki 8 (tj. dodaj po prostu klamry)

Co do drugiego pytania - ja bym zrobił taki algorytm:
-wylosuj ocenę z zakresu 2-5
-jeśli ocena to 3 lub 4 to (do jakiejś nowej zmiennej) wylosuj i przypisz rand z zakresu 0-1
-jeśli jest 0, to nie rób niczego
-jeśli jest jeden, to do oceny dodaj 0.5
-powtórz tak dla wszystkich ocen
pgslok
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 29 gru 2014, o 21:33
Płeć: Mężczyzna
Lokalizacja: Białystok

[C] Program losujący studentów i oceny

Post autor: pgslok »

Pomogła mi Twoja odpowiedź, dzięki.
Awatar użytkownika
Vardamir
Użytkownik
Użytkownik
Posty: 1913
Rejestracja: 3 wrz 2010, o 22:52
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 6 razy
Pomógł: 410 razy

[C] Program losujący studentów i oceny

Post autor: Vardamir »

Można też bezpośrednio losować z takiego zbioru

Kod: Zaznacz cały

float random_value = fmodf(rand(), ((5.5 - 2) / 0.5)) * 0.5 + 2;
printf("%f",random_value);
Potrzebne jest tylko #include <math.h>
ODPOWIEDZ