problem z zadaniem liczby losowe

0

Treść zadania brzmi:
Losuj liczby calkowite z przedzialu od 1 do 10 i sumuj je. Przerwij losowanie w przypadku
gdy suma liczb przekroczy 99. Wyswietl wartosc wyliczonej sumy.
Wszystko trzeba robić przekazując parametry do innej funkcji.

Moje aktualne wypociny:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int gen(int losuj, int suma ){
srand(time(NULL));
while(suma>99){
losuj=(rand()%11);
suma=suma+losuj;

}
return suma;

}

int main()
{
printf("%d",gen(12,12));
return 0;
}

0

po pierwsze pętla się nigdy nie wykona, bo masz zły warunek, po drugie % (modulo) służy do otrzymywania reszty z dzielenia i nie mam zielonego pojęcia jak ta 11 została dobrana. Jak rand() zwraca wartości od 0-1 to mnożysz wynik przez 10 i zaokrąglasz jeżeli mają to być liczby naturalne. Wgl. ta treść jest bez sensu bo wynik zawsze bedzie między 100-109.

0

W zasadzie nie rozumiem co tutaj trzeba przekazywać jako parametry. Wszystkie dane są znane:

#include<stdio.h>
#include<time.h>

int main()
{
	srand((unsigned)time(NULL));
	int sum = 0;
	for (; sum <= 99; sum += rand() % 10 + 1);
	printf("%d\n", sum);
	return 0;
}

Można też pętlę zamienić na do...while gdyż wiadomo, że wynikiem pierwszej iteracji nigdy nie będzie liczba większa niż 99.

EDIT: W sumie całe to zadanie można by zapisać tak:

#include<stdio.h>
#include<time.h>

int main()
{
	srand((unsigned)time(NULL));
	printf("%d\n", rand() % 10 + 100);
	return 0;
}

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