Mi lehet ezzel a kóddal a probléma?
Annyi lenne a feladata, hogy a függvény csak azokat a számokat adja vissza, amelyek nem nullák, tehát törölje a nullákat a tömbből. De valamit elronthattam, mert nem működik jól minden esetre.
Lépegesd végig egy teszt tömbön egyesével, hogy mit csinál, és rájössz.
Lehet így kéne, de most mennem kell:
tomb[k]=tomb[i];
Igen, így jó, ahogy mondtam. Csak tudnod kell, hol az új tömb vége, mert ottmarad a tömb végén szemét adat. A k változóból meg lehet mondani, így azt return-ölöm:
#include <stdio.h>
int remove_zeros(int tomb[], int tombszam) {
int k=0;
for(int i=0; i<tombszam; i++) {
if(tomb[i]!=0) {
tomb[k]=tomb[i];
k++;
}
}
return k;
}
void print_arr(int tomb[], int tombszam) {
printf("\n");
for(int i=0; i < tombszam; i++) {
printf(" %d", tomb[i]);
}
}
int main()
{
int tomb[] = {0,1,2,0,3};
int tombszam = 5;
printf("\n az eredeti tömb:");
print_arr(tomb, tombszam);
int ujtombszam = remove_zeros(tomb, tombszam);
printf("\n a módosított tömb:");
print_arr(tomb, tombszam);
printf("\n a módosított tömb csak ujtombszam-ig:");
print_arr(tomb, ujtombszam);
return 0;
}
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!