| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1678 人关注过本帖
标题:为什么会有死循环
只看楼主 加入收藏
小王00001
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-1-8
结帖率:0
收藏
 问题点数:0 回复次数:0 
为什么会有死循环
这就是一个简单的一元二次方程程序,但是为什么当我输入红字以上的数值时,会进入死循环?

#include<iostream> //包含iostream的头文件
#include<math.h>
#include<string>//字符串处理函数
using namespace std;
class FindRoot//定义类FindRoot
{
private:
 float a,b,c;
double r,q,x1,x2,R;//定义数据成员类型
 int  jud;
public:
 void Input();//输入函数
 void Display();//显示函数
 void Find();//求根函数
};
//以上是类的声明部分,以下是类的实现部分
void FindRoot::Input()
{
    cout<<"这是一个求解ax^2+bx+c=0的根的程序:"<<endl;//总述程序
printf("请依次输入a b c的值:\n");

        cin>>a;
        cin>>b;
        cin>>c;
        
        for(; ;)
        
        if(a==0.0&&b!=0)
        {
           x1=x1=-c/b;
            cout<<"x1=x2=-c/b"<<-c/b<<endl;
        }
        else

        if(a==0.0&&b==0&&c==0)
        {
            x1=R;
        cout<<"x1=x2=R"<<endl;
        }
        else
        
            if(a==0.0&&b==0&&c!=0)
        {
            
        }
        else break;
}
void FindRoot::Find()//定义求根的函数
{
 float delta=b*b-4*a*c;//定义求根公式的数据类型
 if(delta<0)
 {jud=0;
     r=-b/(2*a);
     q=sqrt(-delta)/(2*a);//有两个共轭复数根的情况
 }
 else if(delta==0)
  {
   x1=-b/(2*a);
   jud=1;//有两个相同的根的情况
  }
  else
  {
   x1=(-b+sqrt

(delta))/(2*a);
   x2=(-b-sqrt

(delta))/(2*a);
   jud=2;//有两个不同的根的情况
  }
  
}

void FindRoot::Display()//定义显示函数
{
    switch(jud)
    {   
    case 0:
        {cout<<"x1="<<r<<"+"<<q<<"i"<<endl;
            cout<<"x2="<<r<<"-"<<q<<"i"<<endl;}break;//显示有共轭复数根时的解
    case 1:
        cout<<"x1=x2="<<x1<<endl;break;//显示有一实根时的解
        case 2:
    cout<<"x1="<<x1<<'\n'<<"x2="<<x2<<endl;break;//显示有两不同根情况的解
    }
}
void main()//主函数
{
    while(1)
    {
 FindRoot f;//定义类型
 f.Input();
 f.Find();
 f.Display();//以上各函数按顺序执行
 cout<<"是否退出?(Y退出,其它任意键继续)"<<endl;//程序是否退出
 char m[2];char Y[]="Y";char y[]="y";//定义字符串
 cin>>m;
if(strcmp(m,Y)==0||strcmp(m,y)==0)
break;//如果退出则终止运行
else
cout<<"请继续……"<<endl;//如果不退出则继续执行
    }
}
搜索更多相关主题的帖子: private include public double 字符串 
2016-01-11 16:12
快速回复:为什么会有死循环
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013690 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved