当前位置:编程学习 > C/C++ >>

C++代码简化问题

以下这个程序已经完成了 请大家帮我debug一下 看看还有哪些需要修正的地方 ,同时 我想问下 下面的代码 在维持功能不变的情况下 还能不能够精简!

#include<iostream>
//#include<iomanip>
//#include <locale>
using namespace std;

int main()
{
 char a=0,c;
 int year,i=2,k=2;                                                        do
 {
  cout<<"                                欢迎您使用闰年查询器!"<<endl;
  cout<<"请输入您要查询的年份:";
  cin>>year;
  while(i<1,i--)
  {
   if(year>0&&year<9999)
   ;
   else
   {
    cout<<"请输入0-9999之间正确的年份!";
    cin>>year;
   }
  }
  cout<<"年份查询中请稍等..."<<endl;
  if ((year%4==0&&year%100!=0)||(year%400==0))                            
  {
   cout<<endl;
   cout<<"     恭喜您,您所查询的"<<year<<"年是闰年!!"<<endl;
   cout<<endl;
  }
  else
  {
   cout<<endl;
   cout<<"     很遗憾,您所查询的"<<year<<"年不是闰年!"<<endl;
      cout<<endl;
  }
  cout<<"请问您还想再算一遍吗?是请按Y,退出请按Q!";
  cin>>c;
  do
  {
   if(c=='y'||c=='Y')
   {
    a=1;
   }
   else if(c=='q'||c=='Q')
   { 
    a=0;
   }
   else
   {
    cout<<"您输入的不是Y或N,请重新输入正确的字母!:";                 
    cin>>c;
    a=0;  
   }
  }while(k<1,k--);
 }while(a);


 cout<<"程序结束,感谢您的使用。再见!"<<endl;
 cout<<endl;
 cout<<endl;
 cout<<"                                            ";
}
            

补充:

该程序已经发现一个小bug 就是每重复运行一次,运行速度就越来越慢 !!问题出在哪里

追问:

呵呵 多谢你的分析 。 问题我已经解决了 

把int year,i=2,k=2;          定义放到了 第一个do...whiie循环中的开始,初始化了i和k的值就不卡了,前面卡的原因是因为 i和k的值没有被初始化 他们都被自减为0了。 你看是么?

答案:

在vc6.0中运行通过,说明没有语法错误。测试数据0 9999 2004 2008 11111,都还行,不过连续查询时,就开始有点卡,我不知道原因,可能是哪个循环有问题

 

cout<<"年份查询中请稍等..."<<endl;这句好像很鸡肋,计算那么简单,哪还需要什么稍等哦。还有后面的

 cout<<"程序结束,感谢您的使用。再见!"<<endl;
 cout<<endl;
 cout<<endl;
 cout<<"                                            ";

不过这些都是很好的编程习惯。

上一个:在Ajax项目中怎样在配置文件中设置出错的默认页面??
下一个:ajax中的对象?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,