Kezdőoldal » Számítástechnika » Programozás » Valaki segítene c ben van egy...

Tothrichard1 kérdése:

Valaki segítene c ben van egy programom ami nem működik? Kifejtem.

Figyelt kérdés

az a része nem működik h kiírja azt hogy "hello (neve változót)" elég kezdő vagyok, adnátok tippeket mit változtassak?


#include <stdio.h>

#include <string.h>


main()

{

char neve[]=" "; // kell egy space a ket idezojel koze

char valasz[]=" "; // kell egy space a ket idezojel koze

printf("Adja meg a nevet: "); scanf("%s", &neve);

printf("Kiirjam a nevet? (igen/nem): "); scanf("%s", &valasz);

printf("%s\n", neve);

int res=strncmp(valasz,"igen",4);

//printf("%d\n", res);

if (res==0)

printf("Hello %s!!!\n", neve);

else

printf("Akkor nem hello!!!");

}



2014. jan. 10. 14:03
 1/6 anonim ***** válasza:

char neve[]=" ";


Ezzel ugye lefoglalsz egy karaktertömböt. Mivel a string-literalod egy ' ' spacet és '\0' lezáró nullát tartalmaz, 2 helyet foglal neki. Ebbe nyilván nem fog beleférni 5 karakter.


Javítás: char neve[5].

2014. jan. 10. 14:07
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
és ha hosszabb mint 5 karakter? akkor nagyobb számot írjak be nem? de az nem gond ha nagyobb a szám mint a neve hosszúsága? de akkor a válasz tömbhöz is be kell írjak egy 4 est nem?
2014. jan. 10. 14:12
 3/6 anonim ***** válasza:
Igen, a várható leghosszabbat kell beleírni.
2014. jan. 10. 14:23
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

#include <stdio.h>

#include <string.h>


main()

{

char neve[5]=" "; // kell egy space a ket idezojel koze

char valasz[4]=" "; // kell egy space a ket idezojel koze

printf("Adja meg a nevet: "); scanf("%s", &neve);

printf("Kiirjam a nevet? (igen/nem): "); scanf("%s", &valasz);

printf("%s\n", neve);

int res=strncmp(valasz,"igen",4);

//printf("%d\n", res);

if (res==0)

printf("Hello %s!!!\n", neve);

else

printf("Akkor nem hello!!!");

}



még nem működik, mi lehet a baj?

2014. jan. 10. 14:35
 5/6 anonim ***** válasza:
Azért, mert mint leírtam, az "igen" literál nem 4 hosszú.
2014. jan. 10. 15:07
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:
Amikor stringbe scanf-elsz, akkor nem kell a &, mert tömb memóriacíme a neve.
2014. jan. 10. 15:23
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!