Permalänk

Hjälp med enkelt program i C

Hej, igår tog jag mina ambitioner på allvar och började programmera. Har mest bara läst och testat lite men idag tänkte jag göra mitt första egna program på fri fot men det gick inte exakt som planerat

Programmet går ut på att man ska gissa ett nummer som användaren inte vet om, i detta fall är numret 5. När man gissar fel vill jag att man ska trycka på en tangent och så ska programmet låta användaren gissa igen. Men det som händer när man trycker på en tangent är att programmet stängs :(, vad har jag gjort fel

#include <stdio.h> #include <conio.h> int main () { int A; (A=5); printf ("Gissa nummret\n"); scanf("%d", &A); if (A>5) printf("För Stort\n"); else if (A<5) printf("För litet\n"); else if (A==5) printf("Du gissade rätt\n"); else if ("%d") system("cls"); return 0; }

Visa signatur

i7-4770k OC @ 4,501 Ghz
Asus Geforce GTX 1070 Strix Gaming OC @ 1900 Mhz
16 gb Corsair Vengeance Pro OC @ CL9 2133 Mhz
Samsung SSD 840 OC @ Secret Mhz ;)
Blev på något konstigt vis en mac ägare efter 15 år med windows🤔

Permalänk
Medlem

Du behöver lägga in en loop (t.ex. en while) som återvänder till raden med scanf om användren gissat fel.

Visa signatur

5950X, 3090

Permalänk

tack!

Visa signatur

i7-4770k OC @ 4,501 Ghz
Asus Geforce GTX 1070 Strix Gaming OC @ 1900 Mhz
16 gb Corsair Vengeance Pro OC @ CL9 2133 Mhz
Samsung SSD 840 OC @ Secret Mhz ;)
Blev på något konstigt vis en mac ägare efter 15 år med windows🤔

Permalänk
Medlem

(A=5);

Varför har du paranteser runt detta statement? Det behövs inte.

else if ("%d") system("cls");

Vad försöker du göra här? Kommer alltid att utvärdera till "true" då "%d" blir en adress till en sträng, som är större än noll.

Permalänk
Medlem

(A=5); <---- Här sätter du A till 5

printf ("Gissa nummret\n");
scanf("%d", &A); <------ Här sätter du A till det som användaren matar in

Alltså är det meningslöst att sätta A=5;

Visa signatur

Athlon XP 2100+ AIUHB 0302 | Epox 8RDA+ | 2x256MB Twinmos CL2 | Radeon 9500 @ 9700 Vcore & Vram mod | RIP