沐雨尘枫 发表于 2022-4-24 12:02:36

我想把它弄成无限执行

关于一元二次方程#include<stdio.h>
#include<math.h>
int main()
{
      double a,b,c,disc,x1,x2,p,q;
      scanf("%lf%lf%lf",&a,&b,&c);
      disc=b * b - 4 * a * c;

      if(disc < 0)
      {
            printf("该函数没有实数根。\n");
                }

      if(disc == 0)
                {
            x1 = -b / (2.0 * a);
            printf("该函数有两个相同的实数根 x = %lf\n",x1);
                }

      if(disc > 0)
                {
            p = -b / (2.0 * a);
            q = sqrt(disc)/(2.0 * a);
            x1 = p + q;
                        x2 = p - q;
            printf("x1 = %lf\nx2 = %lf\n",x1,x2);
                }
    return 0;
}
每次运行完就退很烦希望解决

傻眼貓咪 发表于 2022-4-24 12:21:44

你在说什么?加个 while 不就好了?

人造人 发表于 2022-4-24 12:39:37

#include<stdio.h>
#include<math.h>
int main()
{
    while(1) {
      double a,b,c,disc,x1,x2,p,q;
      scanf("%lf%lf%lf",&a,&b,&c);
      disc=b * b - 4 * a * c;

      if(disc < 0)
      {
            printf("该函数没有实数根。\n");
                }

      if(disc == 0)
                {
            x1 = -b / (2.0 * a);
            printf("该函数有两个相同的实数根 x = %lf\n",x1);
                }

      if(disc > 0)
                {
            p = -b / (2.0 * a);
            q = sqrt(disc)/(2.0 * a);
            x1 = p + q;
                        x2 = p - q;
            printf("x1 = %lf\nx2 = %lf\n",x1,x2);
                }
    }
    return 0;
}

沐雨尘枫 发表于 2022-5-1 10:19:41

后来我想一下。用for(; ;)可以吗

人造人 发表于 2022-5-1 10:30:39

沐雨尘枫 发表于 2022-5-1 10:19
后来我想一下。用for(; ;)可以吗

可以,你用goto都没问题
do while 也可以,随便
只要能构成循环的语句都可以

沐雨尘枫 发表于 2022-5-1 13:00:45

人造人 发表于 2022-5-1 10:30
可以,你用goto都没问题
do while 也可以,随便
只要能构成循环的语句都可以

goto用不来
实际上我原本就想用goto
但编译器报错你看看#include<stdio.h>
#include<math.h>
int main()
{
    a:    double a,b,c,disc,x1,x2,p,q;
      scanf("%lf%lf%lf",&a,&b,&c);
      disc=b * b - 4 * a * c;

      if(disc < 0)
      {
            printf("该函数没有实数根。\n");
                }

      if(disc == 0)
                {
            x1 = -b / (2.0 * a);
            printf("该函数有两个相同的实数根 x = %lf\n",x1);
                }

      if(disc > 0)
                {
            p = -b / (2.0 * a);
            q = sqrt(disc)/(2.0 * a);
            x1 = p + q;
                        x2 = p - q;
            printf("x1 = %lf\nx2 = %lf\n",x1,x2);
                }
                goto a;
    return 0;
}当我再次打入发现居然可以了{:5_98:}

人造人 发表于 2022-5-1 13:11:54

沐雨尘枫 发表于 2022-5-1 13:00
goto用不来
实际上我原本就想用goto
但编译器报错你看看当我再次打入发现居然可以了

这个代码在我这边可以

沐雨尘枫 发表于 2022-5-1 13:13:16

人造人 发表于 2022-5-1 13:11
这个代码在我这边可以

嗯嗯
页: [1]
查看完整版本: 我想把它弄成无限执行