Töltsön fel egy 100 db e-t tartalmazó tömböt ’Z’ kezdőértékkel, a további e-t az előzőnél 0,3-mal nagyobb számokkal! Számolja meg, hogy a tömb e-i közül, amelyek egész értékűek között mennyi található az ASCII kódtábla kisbetűi között?
int main()
{
float t[100],szam;
int i,db=0;
for(i=0,szam='Z'; i<100; i++)
{
t[i]=szam;
szam+=(float)1/3;
}
for(i=0; i<100; i++)
if('a'<=t[i] && 'z'>=t[i])
{
db++;
}
printf("%d",db);
return 0;
}
Eddig jutottam vele, a kérdésem az lenne hogyan lehet megoldani azt, hogy az ASCI kód tábla kisbetűi darabszámába csak az egész számokat számolja bele és a tizedesjegyű( tört számokat) ne vegye bele ?
Ez alapján látszik, hoyg a 97-es az első kis betű a kódtábla alapján és itt látod, hogy még melyik az, intervallumot vizsgálsz, és mivel csak az egész számok kellenek ezért előtte egy oszthatósággal is megnézheted a dolgot és már kész is.
most komolyan pontosan így hangzik a feladat?
semmit nem értek belőle kb..
újat nem mondtál
ezt rosszul írtam:
szam+=(float)1/3;nemjó hanem: szam+=(float)3/10;
így van 97-től nézve indul fejbe kiszámoltam 7 db elemnek kellene lenni.
osztást nem tudtam alkalmazni előtte mivel floatba van a szám..
A frac() függvény megmondja, mennyi a tizedesjel utáni érték. Ha az nulla, akkor egész számról van szó.
Bocsánat, pascal volt a fejemben, mert annyi pascalos kérdés volt már. :))
Szóval C-ben az egyik lehetőség, ha int-té alakítod (aztán esetleg vissza float-tá), és összehasonlítod az eredeti számmal. Ha azonos, akkor egész volt.
Vagy inkább így, mert különben talán az eredeti float-ot is int-té konvertálja.
(float)((int)x)
pastebin 2R4kYp5j
egyébként vicces, hogy "nem értem, hogy alakítom át", mikor a 3/10-edet is átcastoltad floattá, azt akkor honnan tudtad, hogy kell?
csak úgy nagyjából leírom mit vizsgálnék, szintaktikáért nem felelek, de az elvnek jónak kell lennie:
if (szam>=97 && szam <=122){
itt vagy akár cikluson kívül is int-é alakítod és megy :)
}
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!