toones
(toones)
24 Październik 2010 11:27
#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
(etam)
24 Październik 2010 11:29
#2
To może pokaż co napisałeś i jakie masz błędy.
toones
(toones)
24 Październik 2010 12:30
#3
Chodzi mi o rozpisanie przynajmniej jednego zadania. Z komentarzami. Jak wspomniałem uczę się. Proszę o instrukcje.
kolas86
(Kolas1986)
24 Październik 2010 12:45
#4
proponuje najpierw sprawdzenie składni pętli while w języku C
toones
(toones)
24 Październik 2010 12:50
#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
(Drobok)
24 Październik 2010 12:57
#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
kolas86
(Kolas1986)
24 Październik 2010 12:59
#7
ten kod się kompiluje, tylko nie zwiększasz nigdzie zmiennej “i” więc pętla nigdy się nie skończy
toones
(toones)
24 Październik 2010 13:06
#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
(Drobok)
24 Październik 2010 13:15
#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
(toones)
24 Październik 2010 13:28
#10
#include - tego nie połyka
screen:
http://www.toones.mtvk.pl/li.png
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
(toones)
24 Październik 2010 15:57
#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
(Drobok)
24 Październik 2010 16:00
#13
Zawsze możesz wkleić go na hosting typu wklejto. I ustawić wygasanie na dzień czy dwa.
somekind
(somekind)
24 Październik 2010 16:45
#14
Ten plik to prekompilowany nagłówek z Microsoft Visual C++. Nie widzę szans na działanie tego pod Linuksem.
drobok
(Drobok)
24 Październik 2010 17:27
#15
No tak jako że ściągnąłem nowy kompilator źle odpaliłem program :x
btw bez tej linijki program działa ;]