Megcsináltam sprintf-el egy programot csak annyi a baj vele, hogy megadok neki egy számot és például ha a szám 10 akkorcsak a 7-est irja ki 2,3,5,7 helyett, a program GUI-val van megcsinálva elsöre csinálok ilyet mit hibáztam el?
Megnéztem a cmd-s változatot amit csináltam printf meg scanfekel ugy müködik valami hiba az sprintfnél van szerintem:
if(strcmp(val, kiir_list[5])==0)
{
int M; //Meddig vizsgáljuk a számokat
GetWindowText(beker[0], bekert, 20);
sscanf(bekert, "%d", &M);
int tomb [M+1]; //tömböt hozunk létre
char s[M+1];
tomb[0]=tomb[1]=0; // a 0-át és az 1-et alapból hamisnak vesszük, hiszen nem prímek.
for (int i=2;i<=M;++i) tomb[i]=1; //2-tol indítjuk a for-t, alapból mindent igazra állítunk.
int j=2; //indexet ezzel figyelem
while (j<=M) {
for(int i=j*j; i<=M; i+=j) tomb [i] = 0;// a többszörösök logikai értékét hamisra állítom
while(tomb[++j]==0);} // ha a következo érték hamis, akkor továbbugrik a következore
for(int i=0;i<=M;++i)
if(tomb[i]==1) //megnézzük hogy igaz e
sprintf (s, "%d ", i);
SetWindowText(kiir[1], s);
}
Az sprintf-el átalakitom az i-t stringé, mert a SetWindowText csak karaktert fogad el és az nem kiir[i] akar lenni, mert a kiir[1] az egy hely a GUIban ahova ki kellene irja az s karakterláncot amibe benne kéne legyenek a primszámok csak nekem az a problémám, hogy csak a szám elött lévő primszámot irja ki.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!