求帮忙看下这是咋回事
{:10_277:}用int到if的时候出现这个
Process exited after 15.56 seconds with return value 3221225477
用void就报错{:10_266:}
void main()
{
printf("-------------------程序开始----------------------\n");
printf("若解一元二次方程请输入1\n若解二元一次方程请输入0\n");
int num0;
scanf("%d\n",num0);
if(num0==1)
{
printf("---------------------------------------------\n");
printf("解一元二次方程:\n");
float num1,num2,num3;
printf("请分别输入标准方程的二次项的系数、一次项的系数和常数项:\n");
scanf("%f%f%f",&num1,&num2,&num3);
float x;
float dulta;
dulta=num2*num2-4*num1*num3;
if(dulta<0)
{
printf("此方程无实数解!\n");
}
else if(dulta==0)
{
x=num2/(-2*num1);
printf("此方程有两个相同的解x=");
printf("%.2f\n",x);
}
else
{
float a,b;
a=(-num2+sqrt(dulta))/2*num1;
b=(-num2-sqrt(dulta))/2*num1;
printf("此方程的一个解x=%.2f\n",a);
printf("此方程的另一个解x=%.2f\n",b);
}
}
else
printf("---------------------------------------------\n");
printf("解二元一次方程:\n");
float a,b,c,d,e,f;
printf("请把方程改写为ax+by+c=0的形式!\n");
printf("请输入第一个方程的系数:\n");
scanf("%f%f%f",&a,&b,&c);
printf("请输入第二个方程的系数:\n");
scanf("%f%f%f",&d,&e,&f);
float x,y;
if(a==0&&d!=0)
{
y=-c/b;
x=-f+c*e/b;
printf("%f\n",x);
printf("%f\n",y);
}
else if (a==0&&b==0)
{
printf("此方程组无解!");
}
else if(d==0&&e==0)
{
printf("此方程组无解!");
}
else
y=(c*d-a*f)/(a*e-d*b);
x=(-b*y-c)/a;
printf("方程组的解为:\nx=%f",x);
} 缺少头文件stdio和math
最重要的是第八行,应该是scanf("%d",&num0) 本帖最后由 葛明佳 于 2020-10-3 16:30 编辑
巴巴鲁 发表于 2020-10-3 15:56
缺少头文件stdio和math
最重要的是第八行,应该是scanf("%d",&num0)
头文件这两个有。。没复制上{:10_266:}
原因确实是第八行,谢谢{:10_254:}
还有个问题。。
我的那个if和else貌似出问题了。。
两个if都被依次执行了。。 葛明佳 发表于 2020-10-3 16:03
头文件这两个有。。没复制上
原因确实是第八行,谢谢
还有个问题。。
哪一个if-else 我也经常犯这个错误哈哈哈 巴巴鲁 发表于 2020-10-3 16:33
哪一个if-else
第9行和第38行那个,不管怎么样,都会自动运行下面那个else里的内容。。
而且一开始那个输入也有问题。。
这是输出的:
-----------程序开始----------------
若解一元二次方程请输入1
若解二元一次方程请输入0
1
1 //这里应该在下面那个之后输入,但是却让在这里输入了。
解一元二次方程:
请分别输入标准方程的二次项的系数、一次 项的系数和常数项:
2
-1
此方程的一个解x=0.41
此方程的另一个解x=-2.41
请把方程改写为ax+by+c=0的形式!//这应该是38行else里面的内容,但是也被一块运行了。
请输入第一个方程的系数:
12
12
13
请输入第二个方程的系数:
15
16
18
方程组的解为:
x=0.666667 葛明佳 发表于 2020-10-3 17:00
第9行和第38行那个,不管怎么样,都会自动运行下面那个else里的内容。。
而且一开始那个输入也有问题。 ...
38行else那个没有{},只会执行他下面那一句,后面不管是什么都会执行 巴巴鲁 发表于 2020-10-3 17:33
38行else那个没有{},只会执行他下面那一句,后面不管是什么都会执行
第11行和第12行的为啥不执行啊{:10_266:}
巴巴鲁 发表于 2020-10-3 17:33
38行else那个没有{},只会执行他下面那一句,后面不管是什么都会执行
确实是{:10_266:}
加上括号就行了{:10_254:} 葛明佳 发表于 2020-10-3 17:48
第11行和第12行的为啥不执行啊
输入1才会执行啊{:10_258:} 巴巴鲁 发表于 2020-10-3 18:00
输入1才会执行啊
输入了也不行。。得输两次{:10_245:}
而且第二次识别为下面scanf里面的。。 葛明佳 发表于 2020-10-3 21:32
输入了也不行。。得输两次
而且第二次识别为下面scanf里面的。。
我的不是啊,刚开始输1就好了 巴巴鲁 发表于 2020-10-3 21:49
我的不是啊,刚开始输1就好了
难不成是我编译器的问题{:10_245:}{:10_245:}
我用vs试试。。
巴巴鲁 发表于 2020-10-3 21:49
我的不是啊,刚开始输1就好了
诶对。。
前面用void main()的话为啥dev c++会报错啊{:10_245:} 葛明佳 发表于 2020-10-4 08:57
诶对。。
前面用void main()的话为啥dev c++会报错啊
不可能 葛明佳 发表于 2020-10-4 08:56
难不成是我编译器的问题
我用vs试试。。
我也是dev
页:
[1]