Kezdőlap › Fórumok › Programozás › C programozás
- This topic has 351 hozzászólás, 49 résztvevő, and was last updated 15 years, 5 months telt el by
valaki456.
-
SzerzőBejegyzés
-
2005-05-15-12:06 #2016106
megtudná mondani valaki hogy a ceil fügvény mejik headerben található meg? Nem találom a glibc doksiában.
[align=right][snapback]134260[/snapback][/align]man ceil
Majdnem(?) minden függvényhez van man oldal, érdemes elõször azt megpróbálni.2005-05-15-13:40 #2016107Sõt olyat is tudsz, hogy
# man math.h2005-05-16-08:25 #2016108köszi az elõzõ tippeket de se man celi se man math.h nincsen. Mindegy nem érdekes akkor használom a másik módszert.
Viszont van egy gondom ismét, az Eclipse talált egy hibát amit nem tudok mire vélni.
Code:long int prim(long int number)
{long int i; //ciklusváltozó
long int sqrtnum; //vizsgálandó szám gyöke
long int n; // osztók darabszámát tartalmazzai = 1; // fájl feltöltése a számokkal
sqrtnum = (long int)sqrt(number)+ 1;while(i < sqrtnum) { if((sqrtnum % i) == 0) { ++n; } // <-- hiba ennél a sornál van 1, ++i; }//while if(n == 1){ return 1; // prímszám }else{ return n; //nem prímszám } }
1, error: parse error before ‘}’ token
a progi arra hivatott egyépként hogy eldöntse egy számról hogy prím vagy öszetedt szám.
azt szeretném megkérdezi mi a hiba mert én nem jöttem még rá.
2005-05-16-08:55 #2016109köszi az elõzõ tippeket de se man celi se man math.h nincsen. Mindegy nem érdekes akkor használom a másik módszert.
[align=right][snapback]134373[/snapback][/align]Olyan nincs, hogy nincs!
Szóval kellene lennie. Milyen disztrib ez? Lehet, hogy fel kell tenni a glibc-doc csomagot, vagy valami ilyesmit, és akkor lesz.
A másik meg, ez a kódrészlet rendben van, ebben nincs hiba. Lehet, hogy lehagytál valahonnan egy {-t, vagy }-t, ami itt okoz gondot, jóllehet nem innen hiányzik/ itt van többlet.
2005-05-16-09:21 #2016110QUOTE
Olyan nincs, hogy nincs!Szóval kellene lennie. Milyen disztrib ez? Lehet, hogy fel kell tenni a glibc-doc csomagot, vagy valami ilyesmit, és akkor lesz.
Kösz majd utánna nézek a megfelelõ csomagnak. Egyépként debian sarget haszanálok, a distró nem új (kb 2 és fél éve debian van) csak a programozás, eddig ilyennel hogy glibc doksia nem negyon foglalkoztam.
viszont a progi nagyon nem normálisan mükszik itt az egész:
Code:#include
#includelong int prim(long int number)
{long int i; //ciklusváltozó
long int sqrtnum; //vizsgálandó szám gyöke
long int n; // osztók darabszámát tartalmazzai = 1; // fájl feltöltése a számokkal
sqrtnum = (long int)sqrt(number)+ 1;while(i < sqrtnum) { if((sqrtnum % i) == 0) { ++n; } ++i; }//while if(n == 1){ return 1; // prímszám }else{ return n; //nem prímszám } } int main(int argc, char *argv[]) { long int ret; if(argc != 2) { printf("nem adtál meg elég paramétertn"); return 1; } ret = prim((long int)argv[1]); if(ret == 1) { printf("ez egy prím számn"); return 0; }else{ if(ret > 1)
{
printf(„ennek a számnak több mint két osztója van tehát nem prímnosztójinak száma: %nn”, ret);
return 0;
}else{
printf(„speciális zsám nem lehet róla eldönteni hogy prím vagy összetedtn”);
return 1;
}
}
}légyszi nézzetek rá, elõre is köszi.
2005-05-16-09:38 #2016111Lássuk csak…
Az n értéke kezdetben mennyi?2005-05-16-11:52 #2016112Köszönöm mindenkinek a segítséget sikerült minden problémát kijavítani tökéleteen mûködik.
2005-05-18-08:12 #2016113köszi az elõzõ tippeket de se man celi se man math.h nincsen. Mindegy nem érdekes akkor használom a másik módszert.
Viszont van egy gondom ismét, az Eclipse talált egy hibát amit nem tudok mire vélni.
Code:long int prim(long int number)
{long int i; //ciklusváltozó
long int sqrtnum; //vizsgálandó szám gyöke
long int n; // osztók darabszámát tartalmazzai = 1; // fájl feltöltése a számokkal
sqrtnum = (long int)sqrt(number)+ 1;while(i < sqrtnum) { if((sqrtnum % i) == 0) { ++n; } // <-- hiba ennél a sornál van 1, ++i; }//while if(n == 1){ return 1; // prímszám }else{ return n; //nem prímszám } }
1, error: parse error before ‘}’ token
a progi arra hivatott egyépként hogy eldöntse egy számról hogy prím vagy öszetedt szám.
azt szeretném megkérdezi mi a hiba mert én nem jöttem még rá.
[align=right][snapback]134373[/snapback][/align]I think:
Nem ++n , hanem n++ és nem ++i , hanem i++ .
If() után, akkor kell a {} zárójel, ha egynél több utasítás van, tehát itt próbáld meg elhagyni. Lehet irgalmatlan nagy hülyeség, mert elvileg ugyan azokat jelenti, de talán….2005-05-18-08:39 #2016114I think:
Nem ++n , hanem n++ és nem ++i , hanem i++ .
If() után, akkor kell a {} zárójel, ha egynél több utasítás van, tehát itt próbáld meg elhagyni. Lehet irgalmatlan nagy hülyeség, mert elvileg ugyan azokat jelenti, de talán….
[align=right][snapback]134632[/snapback][/align]Ha jól tudom, már megegyeztünk abban, hogy az idézett kód rendben van, valahol máshol van (volt) a hiba. Hogy ++n vagy n++, az ebben a helyzetben mindegy, de ha nem lenne az, akkor sem szintaktikai hibát okozna. if után meg utasítás vagy blokk állhat, ha jól emlékszem, tehát ha elhagyná a {}-t, akkor sem lenne semmi változás.
2005-05-18-16:51 #2016115Csak egy tipp: az sqrtnum a vizsgált szám gyöke és long int. Szerintem egy gyöknél elég nagy a valószínüsége, hogy tört lesz, és ebbõl akarsz még modulo osztást csinálni.
Ha nem jó majd kelemengagor kiigazít. -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz