(c语言)为什么我的这个运行的时候输入1继续运行,而输入0后没有结束程序?另外怎么封装函数?求解

2025-03-30 14:43:42
推荐回答(2个)
回答1:

  • 我们以最经典的HELLO WORLD程序为例

  • 当我们写完这个程序 编译完成后单击左上角的叹号运行 可以看到一切正常 按下任意按键后窗口才会消失

  • 但是我们去生成的目录下面找到这个EXE文件

  • 双击运行却发现有个窗口一闪而过。。然后就什么也没有了 这时候我们有必要在程序中添加一些代码 防止程序被关闭

    先在程序开头包括windows.h这个头文件

  • 接着在主函数末尾的地方写一行system(“pause”);

  • 重新编译之后我们再次打开对应目录下的EXE文件,这次程序运行完之后没有直接关闭掉而是停留在这里了,闪退问题成功解决

回答2:

#include 
#include 
int main(int argc, char** argv)
{ double a, b,c,d,r,r1,r2;
 int x;                       /////有改动
 x=1;
 while(x){ printf("请输入一元二次方程的系数a、b和c,数之间用空格分开:");
//输入a,b,c值
 scanf("%lf %lf %lf",&a,&b,&c);
 d=b*b-4*a*c;//求解判别式的值
 printf("判别式=%lf\n",d);
 if(d>0)//d>0,有2个实数根
 { r1=(-b+sqrt(d))/(2*a);
r2=(-b-sqrt(d))/(2*a);//求根公式
 printf("方程的两个根是:%lf,%lf\n",r1,r2); //输出结果 
} else
 { if(d==0)//d=o,有1个实数根
 { r=-b/(2*a);
 printf("方程只有一个根:%f\n",r); //输出结果   /////有改动
 } else//d<0,没有实数根
 { printf("方程没有根\n");//输出结果
 } } x=-1;
 printf("是否继续做题?是输入1,否输入0:");
 scanf("%d",&x);
 }
 return 0;
}