鱼C论坛

 找回密码
 立即注册
查看: 1847|回复: 15

[已解决]求帮忙看下这是咋回事

[复制链接]
发表于 2020-10-3 15:42:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

用int到if的时候出现这个
Process exited after 15.56 seconds with return value 3221225477
用void就报错

  1. void main()

  2. {   
  3.     printf("-------------------程序开始----------------------\n");
  4.     printf("若解一元二次方程请输入1\n若解二元一次方程请输入0\n");
  5.     int num0;
  6.     scanf("%d\n",num0);
  7.     if(num0==1)
  8.     {
  9.             printf("---------------------------------------------\n");
  10.         printf("解一元二次方程:\n");
  11.         float num1,num2,num3;
  12.         printf("请分别输入标准方程的二次项的系数、一次项的系数和常数项:\n");
  13.         scanf("%f%f%f",&num1,&num2,&num3);
  14.         float x;
  15.         float dulta;
  16.         dulta=num2*num2-4*num1*num3;
  17.         if(dulta<0)
  18.         {
  19.         printf("此方程无实数解!\n");
  20.          }
  21.         else if(dulta==0)
  22.         {
  23.             x=num2/(-2*num1);
  24.             printf("此方程有两个相同的解x=");
  25.             printf("%.2f\n",x);
  26.         }
  27.         else
  28.         {
  29.             float a,b;
  30.             a=(-num2+sqrt(dulta))/2*num1;
  31.             b=(-num2-sqrt(dulta))/2*num1;
  32.             printf("此方程的一个解x=%.2f\n",a);
  33.             printf("此方程的另一个解x=%.2f\n",b);
  34.       }
  35.     }
  36.     else
  37.                     printf("---------------------------------------------\n");
  38.             printf("解二元一次方程:\n");
  39.             float a,b,c,d,e,f;
  40.             printf("请把方程改写为ax+by+c=0的形式!\n");
  41.             printf("请输入第一个方程的系数:\n");
  42.             scanf("%f%f%f",&a,&b,&c);
  43.             printf("请输入第二个方程的系数:\n");
  44.             scanf("%f%f%f",&d,&e,&f);
  45.             float x,y;
  46.            if(a==0&&d!=0)
  47.            {
  48.             y=-c/b;
  49.             x=-f+c*e/b;
  50.             printf("%f\n",x);
  51.             printf("%f\n",y);
  52.            }
  53.            else if (a==0&&b==0)
  54.            {
  55.            printf("此方程组无解!");
  56.            }
  57.            else if(d==0&&e==0)
  58.            {
  59.            printf("此方程组无解!");
  60.            }
  61.            else
  62.             y=(c*d-a*f)/(a*e-d*b);
  63.             x=(-b*y-c)/a;
  64.             printf("方程组的解为:\nx=%f",x);  
  65. }
复制代码
最佳答案
2020-10-3 15:56:38
缺少头文件stdio和math
最重要的是第八行,应该是scanf("%d",&num0)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-3 15:56:38 | 显示全部楼层    本楼为最佳答案   
缺少头文件stdio和math
最重要的是第八行,应该是scanf("%d",&num0)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-3 16:03:26 | 显示全部楼层
本帖最后由 葛明佳 于 2020-10-3 16:30 编辑
巴巴鲁 发表于 2020-10-3 15:56
缺少头文件stdio和math
最重要的是第八行,应该是scanf("%d",&num0)


头文件这两个有。。没复制上
原因确实是第八行,谢谢
还有个问题。。
我的那个if和else貌似出问题了。。
两个if都被依次执行了。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 16:33:51 | 显示全部楼层
葛明佳 发表于 2020-10-3 16:03
头文件这两个有。。没复制上
原因确实是第八行,谢谢
还有个问题。。

哪一个if-else
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 16:38:38 | 显示全部楼层
我也经常犯这个错误哈哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-3 17:00:05 From FishC Mobile | 显示全部楼层
巴巴鲁 发表于 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
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 17:33:19 | 显示全部楼层
葛明佳 发表于 2020-10-3 17:00
第9行和第38行那个,不管怎么样,都会自动运行下面那个else里的内容。。
而且一开始那个输入也有问题。 ...

38行else那个没有{},只会执行他下面那一句,后面不管是什么都会执行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-3 17:48:15 From FishC Mobile | 显示全部楼层
巴巴鲁 发表于 2020-10-3 17:33
38行else那个没有{},只会执行他下面那一句,后面不管是什么都会执行

第11行和第12行的为啥不执行啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-3 17:49:25 From FishC Mobile | 显示全部楼层
巴巴鲁 发表于 2020-10-3 17:33
38行else那个没有{},只会执行他下面那一句,后面不管是什么都会执行

确实是
加上括号就行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 18:00:32 | 显示全部楼层
葛明佳 发表于 2020-10-3 17:48
第11行和第12行的为啥不执行啊

输入1才会执行啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-3 21:32:03 From FishC Mobile | 显示全部楼层
巴巴鲁 发表于 2020-10-3 18:00
输入1才会执行啊

输入了也不行。。得输两次
而且第二次识别为下面scanf里面的。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-3 21:49:38 | 显示全部楼层
葛明佳 发表于 2020-10-3 21:32
输入了也不行。。得输两次
而且第二次识别为下面scanf里面的。。

我的不是啊,刚开始输1就好了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-4 08:56:48 From FishC Mobile | 显示全部楼层
巴巴鲁 发表于 2020-10-3 21:49
我的不是啊,刚开始输1就好了

难不成是我编译器的问题
我用vs试试。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-10-4 08:57:56 From FishC Mobile | 显示全部楼层
巴巴鲁 发表于 2020-10-3 21:49
我的不是啊,刚开始输1就好了

诶对。。
前面用void main()的话为啥dev c++会报错啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-4 09:08:50 | 显示全部楼层
葛明佳 发表于 2020-10-4 08:57
诶对。。
前面用void main()的话为啥dev c++会报错啊

不可能
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-4 09:09:26 | 显示全部楼层
葛明佳 发表于 2020-10-4 08:56
难不成是我编译器的问题
我用vs试试。。

我也是dev
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-7 12:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表