Pomoc w zadaniu

0

Witam, potrzebuję pomocy w napisaniu programu. Kompletnie nie rozumiem co mam zrobić i jak się do tego zabrać:

Napisz program, który wykorzystuje funkcje, która przy każdym kolejnym wywołaniu funkcji main drukuje liczbę naturalna, zaczynajac od liczby 2 będąca wielokrotnością liczby poprzedniej. Wartość końcowa nie może przekroczyć 1000. Program musi być optymalny , należy wykorzystać zmienne statyczne.

0

Wołąnie funkcji main jest UB.

0

Tak niestety wyglada treść zadania. Może jakas propozycja jak w ogóle zacząć?

0
int print()
{
     static int i {2};
     return i*i>1000 ? i : i*=i;
}
0

Dalej nie kumam. To zadanie wydaje się kompletnie nielogiczne.

0

Może masz wywołać jakąś funkcję z funkcji main? To będzie mieć dużo więcej sensu

0

Podejrzewam że w treści zadania jest błąd. Zamiast "która przy każdym kolejnym wywołaniu funkcji main" może powinno być "* która przy każdym kolejnym wywołaniu funkcji z main*".
Wtedy zadanie od razu nabiera sensu.

0

Tak, w ten sposób to ma więcej sensu, nie było podane jaka wielokrotność, więc jest parametrem; pętla, oczywiście, wystarczy do 10:

void multiple_cnt(int n) {
	static int cnt = 1;
	cnt *= n;
	if (cnt > 1000) 
		return;
	printf("%d ", cnt);
}

int main() {
	int n = 3;
	for (int i = 0; i < 10; i++) {
		multiple_cnt(n);
	}
	return 0;
}

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