Kezdőoldal » Számítástechnika » Programozás » Miért ír hibát futás közben?...

Miért ír hibát futás közben? ( C-s program)

Figyelt kérdés

Ez lenne a program:

#include<stdio.h>

#include<stdlib.h>

int main()

{

int szam1,szam2;

float eredmeny;

int muvelet;

printf("Adja meg az első számot!Majd a muveletet, s a masodik szamot! ");

scanf("%d",&szam1);

scanf("%d",&muvelet);

if(muvelet!=5 or muvelet!=6)

{ /* több számos kezdet*/

scanf("%d",szam2);

switch(muvelet) { /* muveletek válogatása(többszámoson) kezdet*/

case '1': eredmeny = szam1 + szam2;break;

case '2': eredmeny=szam1-szam2;break;

case '3': eredmeny=szam1*szam2;break;

case '4': eredmeny=szam1/szam2;break;

default : printf("Szerencsementes!!...\n");

system("PAUSE");break;

} /*muveletek válogatása(többszámoson) vég*/

printf("Eredmeny: %d\n",eredmeny);

system("PAUSE");

} /* többszámos vég*/

else { /*1 számos kezdet*/

if(muvelet==5)

{ /* 1 számos négyzet kezdet*/

eredmeny=szam1*szam1;

} /* 1 számos négyzet vég*/

else { /* 1 számos gyök kezdet*/

/* eredmeny=(sqrt(szam1));*/ /* valamiért nem megy a " sqrt() " mint gyökvonás*/

} /* 1 számos gyök vég*/

printf("Eredmeny: %d\n",eredmeny);

system("PAUSE");

} /*1 számos vég*/

}


Ez elvileg, bekér egy számot egy műveletet, s ha a műveletet csak 2 számmal lehet elvégezni akkor bekér még egy számot.(pl. gyökvonás 1 számos)

Miután eldöntötte, hogy melyik műveletet kell végrehajtania akkor azt elvégzi az eredményt berakja az " eredmeny " változóba és azt kiírja.

( a műveleteket 1,2,3,4,5 és 6-os számokra raktam mivel karakterekkel nem bírtam megoldani)

Nos a hibaüzenetet akkor írja miután bekérte a második számot. Miért??


2012. márc. 8. 17:32
 1/3 A kérdező kommentje:

Lehet, hogy azért mert egy float típust két int ként akarok meghatározni??

De akkor nem kéne alapjáraton átírnia a számot??

pl.: int a,b;

float c;

a=2;b=3;

c=a+b;

akkor c=5,000 /* mivel az eredmeny 5 de ez float típusban írja ki)

2012. márc. 8. 17:34
 2/3 anonim ***** válasza:
"scanf("%d",szam2)" sorban lemaradt a &. Helyesen: "scanf("%d", &szam2)".
2012. márc. 8. 17:36
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:

uhh tényleg...

köszönöm! sohase vettem volna észre!! :)

2012. márc. 8. 17:43

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!