葛明佳 发表于 2020-10-3 15:42:27

求帮忙看下这是咋回事

{: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);
}

巴巴鲁 发表于 2020-10-3 15:56:38

缺少头文件stdio和math
最重要的是第八行,应该是scanf("%d",&num0)

葛明佳 发表于 2020-10-3 16:03:26

本帖最后由 葛明佳 于 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:33:51

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


哪一个if-else

Jacksturdy 发表于 2020-10-3 16:38:38

我也经常犯这个错误哈哈哈

葛明佳 发表于 2020-10-3 17:00:05

巴巴鲁 发表于 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:33:19

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

38行else那个没有{},只会执行他下面那一句,后面不管是什么都会执行

葛明佳 发表于 2020-10-3 17:48:15

巴巴鲁 发表于 2020-10-3 17:33
38行else那个没有{},只会执行他下面那一句,后面不管是什么都会执行

第11行和第12行的为啥不执行啊{:10_266:}

葛明佳 发表于 2020-10-3 17:49:25

巴巴鲁 发表于 2020-10-3 17:33
38行else那个没有{},只会执行他下面那一句,后面不管是什么都会执行

确实是{:10_266:}
加上括号就行了{:10_254:}

巴巴鲁 发表于 2020-10-3 18:00:32

葛明佳 发表于 2020-10-3 17:48
第11行和第12行的为啥不执行啊

输入1才会执行啊{:10_258:}

葛明佳 发表于 2020-10-3 21:32:03

巴巴鲁 发表于 2020-10-3 18:00
输入1才会执行啊

输入了也不行。。得输两次{:10_245:}
而且第二次识别为下面scanf里面的。。

巴巴鲁 发表于 2020-10-3 21:49:38

葛明佳 发表于 2020-10-3 21:32
输入了也不行。。得输两次
而且第二次识别为下面scanf里面的。。

我的不是啊,刚开始输1就好了

葛明佳 发表于 2020-10-4 08:56:48

巴巴鲁 发表于 2020-10-3 21:49
我的不是啊,刚开始输1就好了

难不成是我编译器的问题{:10_245:}{:10_245:}
我用vs试试。。

葛明佳 发表于 2020-10-4 08:57:56

巴巴鲁 发表于 2020-10-3 21:49
我的不是啊,刚开始输1就好了

诶对。。
前面用void main()的话为啥dev c++会报错啊{:10_245:}

巴巴鲁 发表于 2020-10-4 09:08:50

葛明佳 发表于 2020-10-4 08:57
诶对。。
前面用void main()的话为啥dev c++会报错啊

不可能

巴巴鲁 发表于 2020-10-4 09:09:26

葛明佳 发表于 2020-10-4 08:56
难不成是我编译器的问题
我用vs试试。。

我也是dev
页: [1]
查看完整版本: 求帮忙看下这是咋回事