Mi a hiba a programban?
A feladat, hogy a vektorba beolvasott számok összegét számolja ki, de while ciklust kell használnom.
int X[100], n, i=0, s=0;
printf("Elemek szama: ");
scanf("%d", &n);
while(i<n)
{
printf("x[%d]= ", i);
scanf("%d", &X[i]);
i=i+1;
s=s+X[i];
}
printf("s=%d", s);
1) Ezt a két sort felcserélted:
i=i+1;
s=s+X[i];
2) Mi van, ha a felhasználó 100-nál több számot akarna megadni?
3) Mi van, ha a felhasználó nem számot ad meg?
Pro tip #1:
Így csinálhatsz tetszőleges méretű tömböt:
int* Tomb = (int*)malloc(sizeof(int) * ElemekSzáma); //A tömb elemeinek kezdőértéke nem megbízható
int* Tomb = (int*)calloc(ElemekSzáma, sizeof(int)); //A tömb elemeinek kezdőértéke 0
Mi van, ha nem sikerült létrehozni?
if (Tomb == NULL) {
//Nem sikerült létrehozni
}
Ha már így létrehoztad és már nem kell, törölnöd kell:
free(Tomb);
Pro tip #2:
A scanf egy függvény, tehát van neki eredménye. Ez az eredmény azt mondja meg, hogy hány adatot sikerült beolvasni:
int Num;
if (scanf("%d", &Num) == 0) {
//Valami miatt nem sikerült beolvasni az elvárt egy darab egész számot.
}
else {
//Sikerült beolvasni, és a beolvasott szám a Num változóban van
}
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!