Kezdőoldal » Számítástechnika » Programozás » C programozás segítség?

C programozás segítség?

Figyelt kérdés

Hali, a feladat az, h van egy string és a stringből saját függvénnyel ki kell válogatni a számokat. Ugye a mainbe meg kell jelennie annak h hány db szám van, majd egy másik függvénnyel kiírni a tömböt.


#include <stdlib.h>

#include <stdio.h>

void fv(char *p, char *q);

void fv1(char *q);

int main()

{

char s[25]="T2u5k6 D8ap8ij4r";

char t[25];

int db=0;

fv(s,t,db);

fv1(t);

return 0;

}

void fv(char *p, char *q)

{

int i,j=0;

for(i=0;i<25;i++)

{

if(*(p+i)>='1' && *(p+i)<='9')

{

*(q+j)=*(p+i);

k++;

j++;

}

}



}

void fv1(char *q)

{

printf("\szamok: %s\n",q);

}


idáig jutottam, de ez ugye csak kiválogatja, majd kiírja a számokat. De a darabszámot nem számolja?

Ezt hogy kéne alakítani, h a darabszámokat is mutassa?


(eredetileg a feladat ugy szólt, hogy a visszatérési érték a darabszám legyen, majd másik függvénnyel irassuk ku a tömböt)


valaki tudna segíteni?


2013. máj. 14. 10:36
 1/2 anonim ***** válasza:
++db;
2013. máj. 14. 10:42
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

Először is egy tanács:

A változókat igaz lehet egy betüvel is jelölni, de mégis csak jobb ha látod, hogy mi minek a változója. Ez számodra olvashatóbbá teszi a programot.( meg másoknak is ha netán javítják a felatodat) Ez még nem hiba.

A nagyobb hiba ebből a szempontból: az fv1 elnevezés: ez nagyon nem jó, később ha visszanézed a feladatot fogalmad. sem lesz, hogy mit csináltál, csak utána érted meg, hogy visszanézed a függvény utasításait, nevezd el valogat-nak vagy valami beszédesebb névnek.


Harmadik tanács:

if(*(p+i)>='1' && *(p+i)<='9') helyett létezik isnumeric függvény is, ami meghatározza az argumentumáról, hogy numerikus-e, és akkor spórolsz egy kicsit a kóddal.

A negyedik nekem olyan mintha magad sem értenéd a kódodat. Ha értenéd, akkor látnád, hogy a fgv-be ha beletennél még egy integer pointer tipusú változót, aminek értéke legyen kapásból 0.

akkor feltételben növelhetnéd az értékét.

szerintem szépen így nézne ki a kódod:


#include <stdio.h>

#include <string.h>

int valogat( char *szovegbemenet, char *szovegkimenet)

{

int ciklus;

int j=0;

int k=0;

for( ciklus=0;ciklus<strlen(p);ciklus++)

{

if(isnumeric(*(szovegbemenet+ciklus)

{

*(szovegkimenet+j)=*(szovegbemenet+ciklus);

j++;

k++;

}

}

return k;

}

Ezt aztán meghívod ez a függvény szétválogatja neked és meg is határozza a számát.

De ez a kódodban is benn volt, csak nem tudtad, hogy add át a main függvénynek ezt a változót.

A return a visszatérési értéket jelenti, azaz ha meghívod akkor visszatér a válogatott elemek számával. Ennyi a feladat.

2013. máj. 14. 11:04
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!