- Videós, mozgóképes topik
- RAM topik
- Milyen monitort vegyek?
- NVIDIA GeForce RTX 3080 / 3090 / Ti (GA102)
- Melyik tápegységet vegyem?
- Így nézz tévét 2025-ben: új ajánlások, régi szabályok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Kezdő fotósok digitális fényképei
- Előrendelhető a OnePlus Pad 3
- Milyen billentyűzetet vegyek?
Új hozzászólás Aktív témák
-
dudika10
veterán
válasz
Geresics #3889 üzenetére
#include <stdio.h>
#include <string.h>
void beolvas(char * szoveg)
{
printf("Adjon meg egy max. 70 karakter hosszu szoveget, majd usson ENTER-t!\n");
gets(szoveg);
return;
}
int szamlalas(char *szoveg)
{
int db=0;
int i=0;
while (szoveg[i]!='\0' && szoveg[i]!='.')
{
if (szoveg[i]==' ')
db++;
i++;
}
return db;
}
int main()
{
char szoveg[71];
int db;
beolvas(szoveg);
db=szamlalas(szoveg);
printf("A szoveg: %s, szavak szama: %d\n", szoveg, db);
return 0;
}Így jó.
A while ciklusod végtelenciklusba kerülne, nem logikai vagy, hanem és kapcsolat kell. Ha bármelyik megtörténik egyből ki kell lépni.
Láthatod azt is, hogy sztringet hogy kell átadni a függvénynek, és azt is, hogy a vissszatérési értéket hogyan kell használni.
Felhívnám a figyelmed az int db=0; és int i=0; sorokra. A deklarált változók memóriaszemetet tartalmaznak mindaddig, amíg értéket nem adsz nekik. Lehet, hogy az i-ben például a 2341 volt tárolva pont, és akkor úgy kezded, hogy a 71 lefoglalt bájtodból a 2341-ediket akarod olvasni, ahol lehet, hogy éppen az operációsrendszer dolgozik. Ezt nem szabad, ezért a fordító figyelmeztet, hogy adj értéket használat előtt.Remélem senki nem fogja leharapni ezért a fejem, de a BME VIK villamosmérnök hallgatók első féléves tárgya a C, és ebben a félévben nagyszerű diasort állítottak össze az oktatók.
[link]
Van gyakorlati anyag, elméleti anyag, rengeteg példa. -
tototos
addikt
válasz
Geresics #3889 üzenetére
na figyi, a szamlalas függvényed honnan tudja a beolvasott szöveget? attól mert ugyanazt a nevet használnod még az nem lesz ugyanaz, plusz a változóknak illik kezdőértéket adni
void beolvas(char* szoveg)
{
printf("Adjon meg egy max. 70 karakter hosszu szoveget, majd usson ENTER-t!\n");
gets(szoveg);
}
int szamlalas(char *szoveg)
{
int db [B]= 0[/B];
int i [B]= 0[/B];
while (szoveg[i]!='\0' || szoveg[i]!='.')
{
if (szoveg[i]=' ') db++; // ha nem használsz {} jeleket akkor érdemes egy sorba írni az if-fel
i++;
}
return db;
}
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Synology NAS
- Xiaomi 15 Ultra - kamera, telefon
- S.T.A.L.K.E.R. 2: Heart of Chornobyl
- Suzuki topik
- Samsung Galaxy Watch6 Classic - tekerd!
- Videós, mozgóképes topik
- RAM topik
- Asztalos klub
- NASsoljunk: ZyXEL NSA-310 és az FFP
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- További aktív témák...
- AMD Ryzen 7 5700X processzor eladó /Garanciás/
- Xbox Series S + 2 kontroller
- Dell laptop eladó i5 11. gen, 8GB RAM, 512GB SSD, újszerű állapotban!
- Bomba ár! HP EliteBook Folio 1040 G1 - i5-G4 I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
- Bomba ár! HP Elitebook Folio 9470M - i5-3GEN I 8GB I 256GB SSD I 14" I DP I Cam I W10 I Garancia!
- Lenovo ThinkPad X270 (16) - i5-7300U, 16GB, 512GB SSD, 12" FULL HD
- AKCIÓ! MSI Z790 i5 14600KF 64GB DDR5 512GB SSD RTX 3070 8GB Rampage SHIVA Enermax 750W
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- Csere-Beszámítás! Asus Tuf RTX 5070Ti 16GB GDDR7 Videokártya! Bemutató darab!
- KÖZEL FÉLÁR! Apple Magic Keyboard, Mouse, Trackpad, Pencil, Smart Magic Keyboard Folio, Watch szíjak
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged