获取过程返回-1073741819(0xC0000005)错误,请回答
当我试图得到答案时,我得到了以下错误: 流程返回“-1073741819(0xC0000005)”。 我的目标很简单:我从用户那里得到4个数字,1个用于菜单,另外3个用于做数学运算,但我得不到答案:这太糟糕了 我的代码:获取过程返回-1073741819(0xC0000005)错误,请回答,c,C,当我试图得到答案时,我得到了以下错误: 流程返回“-1073741819(0xC0000005)”。 我的目标很简单:我从用户那里得到4个数字,1个用于菜单,另外3个用于做数学运算,但我得不到答案:这太糟糕了 我的代码: #include <stdio.h> #include <stdlib.h> int main() { int menu,t1,t2,sonuc1; double r1,sonuc,sonuc2; printf("\t******
#include <stdio.h>
#include <stdlib.h>
int main()
{
int menu,t1,t2,sonuc1;
double r1,sonuc,sonuc2;
printf("\t*************Menu*****************\n");
printf("\n");
printf("1.\t SADECE TAM SAYILARI TOPLA\n");
printf("2.\t TAM SAYILARI TOPLA REEL SAYI ILE CARP\n");
printf("3.\t REEL SAYININ KARESİNİ ALARAK 1.TAM SAYI İLE ÇARP\n");
printf("4.\t CIKIS\n");
printf("Seciniz:");
scanf("%d",&menu);
if(menu == 4){
printf("Hoscakal");
return 0;
}
else if (menu !=1 && menu !=2 && menu !=3){
printf("Gecersiz Deger!");
return 0;
}
printf("\nBirinci tam sayiyi giriniz: ");
scanf("%d",&t1);
printf("\nIkinci tam sayiyi giriniz: ");
scanf("%d",&t2);
if (t2==0){
t2 = 1;
}
printf("\nReel sayiyi giriniz: ");
scanf("%lf",r1);
if(r1>0 || r1 == 0){
r1 = -1;
}
if(menu == 1){
sonuc1 = (t1+t2);
printf("Sonuc: %d",sonuc1);
}
else if(menu == 2) {
sonuc = (t1+t2)*r1;
printf("Sonuc: %lf",sonuc);
}
else if(menu == 3) {
sonuc2 = (r1*r1)*t1;
printf("Sonuc: %lf",sonuc2);
}
}
#包括
#包括
int main()
{
int菜单,t1,t2,sonuc1;
双r1,sonuc,sonuc2;
printf(“\t****************菜单***************************\n”);
printf(“\n”);
printf(“1.\t SADECE TAM SAYILARI TOPLA\n”);
printf(“2.\t TAM SAYILARI TOPLA REEL SAYI ILE CARP\n”);
printf(“3.t卷轴SAYININ KARESİNİalaak 1.TAM SAYIİLEİARP\N”);
printf(“4.\t CIKIS\n”);
printf(“secnizing:”);
scanf(“%d”,菜单(&M);
如果(菜单==4){
printf(“Hoscakal”);
返回0;
}
否则如果(菜单!=1&&menu!=2&&menu!=3){
printf(“Gecersiz Deger!”);
返回0;
}
printf(“\n比林奇·塔姆·萨伊伊·吉日化:”);
scanf(“%d”和&t1);
printf(“\nIkinci tam sayiyiyi girizing:”);
扫描频率(“%d”和“t2”);
如果(t2==0){
t2=1;
}
printf(“\nrel sayiyiyi girizing:”);
扫描频率(“%lf”,r1);
如果(r1>0 | | r1==0){
r1=-1;
}
如果(菜单==1){
sonuc1=(t1+t2);
printf(“Sonuc:%d”,sonuc1);
}
否则如果(菜单==2){
sonuc=(t1+t2)*r1;
printf(“Sonuc:%lf”,Sonuc);
}
否则如果(菜单==3){
sonuc2=(r1*r1)*t1;
printf(“Sonuc:%lf”,sonuc2);
}
}
输出:
%lf
到scanf
的格式说明符需要一个double*
,但您要传递的是一个double
。格式说明符与给定参数调用不匹配,在本例中会导致崩溃
将其更改为:
scanf("%lf",&r1);
在调试器下运行此代码,它将告诉您其失败的位置
scanf(“%lf”,r1)代码>-你应该得到一个警告。
scanf("%lf",&r1);