Zadania w c, pętla while


(toones) #1

Witam,

Zaczynam uczyć się programowania w C. Mam następujący problem nad którym siedzę drugi dzień i co kompiluje to wywala mi błędy. Czy mógłby mi ktoś pomóc, napisać co jak i dla czego?


ZD1. Napisz kod realizujący funkcję silnia:

n! = 1 * 2 * 3 * ... * (n-1) * n

0! = 1, n >= 0

Uwaga: Wykorzystaj pętlę while.


(etam) #2

To może pokaż co napisałeś i jakie masz błędy.


(toones) #3

Chodzi mi o rozpisanie przynajmniej jednego zadania. Z komentarzami. Jak wspomniałem uczę się. Proszę o instrukcje.


(Kolas1986) #4

proponuje najpierw sprawdzenie składni pętli while w języku C :wink:


(toones) #5

właśnie całe mi się to pieprzy... posiadam instrukcję do funkcji while a mianowicie:

while

while (warunek) {

/* instrukcje do wykonania w pętli */

}

/* dalsze instrukcje */

np: (pętla wypisująca liczby 1-10 na ekranie)

int i=1;

while (i <= 10){

printf("%d\n",i);

gdzie mój kod to:

#include

int main()

{

int i=1;

while (i <= 10){

printf("%d\n",i);

}

return 0;

}

dla czego to nie chce sie kompilować?


(Drobok) #6

Patrz na błędy brakuje ci biblioteki czy jak to się tam zwie. Ja też się uczę może ktoś bardziej doświadczony pomógłby ci z optymalizacją ;]

#include

(Kolas1986) #7

ten kod się kompiluje, tylko nie zwiększasz nigdzie zmiennej "i" więc pętla nigdy się nie skończy


(toones) #8

chodzi mi o skończoną pętle. Pisze to pod ubuntu, pod komendą gedit.

include

takiego czegoś jeszcze nie miałem, nie wiem czy to pod linuxem też klupie,


(Drobok) #9

Ma to być w cudzysłowie. Nie wiem co to, mój kompilator o to woła więc raczej musi to być ;]


(toones) #10

include - tego nie połyka

screen:


(Marcin 110) #11

ten StdAfx.h raczej nie pochodzi z biblioteki standardowej C, więc siłą rzeczy taki program nie będzie spełniał tego wymogu.

toones, mylisz konstrukcję pętli for z while

int i = 1, silnia = 1;

while (i <= n)

{

  silnia *= i++;

}

int silnia = 1;

for(int i = 1; i <= n; ++i)

{

  silnia *= i;

}

(toones) #12

Mam rozwiązania, jednak przy zadaniu z silnią wyskakuje mi warning, przy nwd jest ok, ale binarka mi się sypie. Może mi ktoś sprawdzić kod? Nie chcę go wklejać na forum z racji, że muszę tą prace przesłać wykładowcy.


(Drobok) #13

Zawsze możesz wkleić go na hosting typu wklejto. I ustawić wygasanie na dzień czy dwa.


(somekind) #14

Ten plik to prekompilowany nagłówek z Microsoft Visual C++. Nie widzę szans na działanie tego pod Linuksem.


(Drobok) #15

No tak jako że ściągnąłem nowy kompilator źle odpaliłem program :x

btw bez tej linijki program działa ;]