Hirdetés
- Luck Dragon: Asszociációs játék. :)
- hege8888: Retro Kocka Kuckó harmadjára Hódmezővásárhelyen
- laca223: Miért győz a kollektív meggyőződés akkor is, ha saját magát teszi tönkre?
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- Gurulunk, WAZE?!
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- Magga: PLEX: multimédia az egész lakásban
- sziku69: Fűzzük össze a szavakat :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
Ú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!
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Linux kezdőknek
- Óra topik
- Elektromos cigaretta 🔞
- Kormányok / autós szimulátorok topikja
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Projektor topic
- Milyen processzort vegyek?
- Milyen TV-t vegyek?
- Végleg lemondott a régi gépekről a Steam
- További aktív témák...
- ERAZER Cooling Kit V2 Vízhűtés - MD 62737 Beast 16 X1 gamer laptophoz
- Fedezd fel az EcoTextil-Méteráru kínálatát
- IPAD Pro 12.9 2.Gen 512GB Wifi+CELLULAR, ÜZLETBŐL, 27% ÁFÁS SZÁMLA. GARANCIA
- Playseat Evolution Pro - Red Bull Racing ESPORTS kiadás - akár karácsonyra!
- ADATA AX5U6000C3016G-DTLABRWH 32GB KIT 6000MHz
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
- Apple iPhone 12 Pro Max / 128GB / Kártyafüggetlen / 12Hó garancia
- Gamer/streamer mikrofon, állvány és USB HUB kitűnő árakon!
- Bontatlan, Sony PS5 PRO Pro 2TB, lemez mentes verzió
- BESZÁMÍTÁS! Asus B450M R5 5500 16GB DDR4 512GB SSD RTX 2070 Super 8GB Zalman Z1 Plus Kolink 850W
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


