跪求大神找出此C++程序的error,并加以改正(最好自己先调试),本人新人,谢啦

#include<iostream>
using namespace std;
int main()
{
int year,month,date,result;
cout<<"请输入年份:"<<endl;
cin>>year;
if(year%4==0&&year%100!=0||year%400==0)
cout<<year<<"是闰年"<<endl;
{
cout<<"请输入月份,请输入日期:"<<endl;
cin>>month>>date;
switch(month)
{case'1':result=date;
case'2':result=31+date;
case'3':result=60+date;
case'4':result=91+date;
case'5':result=121+date;
case'6':result=152+date;
case'7':result=182+date;
case'8':result=213+date;
case'9':result=244+date;
case'10':result=274+date;
case'11':result=305+date;
case'12':result=335+date;
defult:cout<<"fair";}
cout<<"是本年的第"<<result<<"天"<<endl;
else cout<<year<<"是平年"<<endl;
switch(month)
{case'1':result=date;
case'2':result=31+date;
case'3':result=59+date;
case'4':result=90+date;
case'5':result=120+date;
case'6':result=151+date;
case'7':result=181+date;
case'8':result=212+date;
case'9':result=243+date;
case'10':result=273+date;
case'11':result=304+date;
case'12':result=334+date;
defult:cout<<"fair";}
cout<<"是本年的第"<<result<<"天"<<endl;}
return 0;
}

看来你是新手哦,都是一些小错误,错误在我的程序中说明了,加油!!有希望成为高手的

#include<iostream>
using namespace std;
int main()
{
    int year,month,date,result;
    cout<<"请输入年份:"<<endl;
    cin>>year;
    if(year%4==0&&year%100!=0||year%400==0)
    {//这个地方添了一个大括号,不然下面的else不能和这个if匹配
        cout<<year<<"是闰年"<<endl;
        cout<<"请输入月份,请输入日期:"<<endl;
        cin>>month>>date;
        switch(month)
        {
            case 1:result=date;break;//这个地方不能是'1',因为month是int型而不是char型,而且要加break
            case 2:result=31+date;break;
            case 3:result=60+date;break;
            case 4:result=91+date;break;
            case 5:result=121+date;break;
            case 6:result=152+date;break;
            case 7:result=182+date;break;
            case 8:result=213+date;break;
            case 9:result=244+date;break;
            case 10:result=274+date;break;
            case 11:result=305+date;break;
            case 12:result=335+date;break;
            defult:cout<<"fair";
        }
        cout<<"是本年的第"<<result<<"天"<<endl;
    }
    else
    {//这个地方也需要加大括号
        cout<<year<<"是平年"<<endl;
        cout<<"请输入月份,请输入日期:"<<endl;//在这里也要输出month和date
        cin>>month>>date;
        switch(month)
        {
            case 1:result=date;break;
            case 2:result=31+date;break;
            case 3:result=59+date;break;
            case 4:result=90+date;break;
            case 5:result=120+date;break;
            case 6:result=151+date;break;
            case 7:result=181+date;break;
            case 8:result=212+date;break;
            case 9:result=243+date;break;
            case 10:result=273+date;break;
            case 11:result=304+date;break;
            case 12:result=334+date;break;
            default:cout<<"fair";
        }
    cout<<"是本年的第"<<result<<"天"<<endl;
    }
return 0;
}

下面是我运行的结果:


追问

谢啦

追答

呵呵,不客气

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-11-18
我把你的程序带入编译器执行了一下(VS2010)..显式出现两处错误

错误 1 error C2181: 没有匹配 if 的非法 else 28
错误 2 error C2045: “defult”: 标签重定义 42

错误 1 解决方法:在if跟else中的语句加上大括号表明作用域..我发现

cout<<"是本年的第"<<result<<"天"<<endl;}这个括号跟

{cout<<"请输入月份,请输入日期:"<<endl;之前的括号配对了..不需要这样..可以去掉这一对多余的括号..把if内容跟else内容的语句包含在一起本上来说就是不必要的.去掉这一对括号后再if else语句的前后加上括号表明作用域 此处错误得到解决..去括号你会 加我估计你不会了.
这是if的加括号方法(记住要先取掉之前的多余的一对括号)
在cout<<year<<"是闰年"<<endl;左边加上{

在cout<<"是本年的第"<<result<<"天"<<endl;右边加上}

else的加括号
在cout<<year<<"是平年"<<endl;左边加上{

在cout<<"是本年的第"<<result<<"天"<<endl;右边加上} 之前有个}要先去掉再加

错误 2 解决方法:C++里面没有defult这个函数...只有default...很明显的书写错误..

还有3处隐式错误..(编译时候不会出现..运行的时候就有问题了)
1.case后面直接跟数字就可以...不要 ‘1’这种形式...
2.result=212+date;后面要加上break;跳出switch(我不是讲这一处而是所有的result= XXX+date;后面都要加break;跳出)
3.cout<<"请输入月份,请输入日期:"<<endl;cin>>month>>date;这一段在else后面的循环里面根本没有..粗心啊..骚年...= =

还有疑问欢迎追问追问

嗯,谢谢

追答

既然没有疑问了 那就采纳一下吧..

追问

不好意思,你的解答很详细,但之前已经采纳了,

追答

没有被采纳呀 0 0

追问

我是比较急,所以采纳了先回答的,不好意思啦,以后有问题再问你吧

追答

你可能跟之前的提问搞混淆了...之前你用相同的标题提了另外一个问题..那次你采纳了..这次你真的谁也没有采纳..如若你不想采纳我的..请明说..不要这么拐弯抹角..0 0

本回答被提问者采纳
第2个回答  2013-11-19

你好!!

程序改好了,注意后面的注释,有问题再问,满意请采纳

#include<iostream>
using namespace std;
int main()
{

}

第3个回答  2013-11-18
#include<iostream>
using namespace std;
int main()
{
int year,month,date,result;
cout<<"请输入年份:"<<endl;
cin>>year;
if(year%4==0&&year%100!=0||year%400==0)
{
cout<<year<<"是闰年"<<endl;
cout<<"请输入月份,请输入日期:"<<endl;
cin>>month;
cin>>date;
switch(month)
{case 1:result=date; break;
case 2:result=31+date; break;
case 3:result=60+date; break;
case 4:result=91+date; break;
case 5:result=121+date; break;
case 6:result=152+date; break;
case 7:result=182+date; break;
case 8:result=213+date; break;
case 9:result=244+date; break;
case 10:result=274+date; break;
case 11:result=305+date; break;
case 12:result=335+date; break;
default:
cout<<"fail";
}
cout<<"是本年的第"<<result<<"天"<<endl;
}
else 
{
cout<<year<<"是平年"<<endl;
cout<<"请输入月份,请输入日期:"<<endl;
cin>>month;
cin>>date;
switch(month)
{
case 1:result=date; break;
case 2:result=31+date; break;
case 3:result=59+date; break;
case 4:result=90+date; break;
case 5:result=120+date; break;
case 6:result=151+date; break;
case 7:result=181+date; break;
case 8:result=212+date; break;
case 9:result=243+date; break;
case 10:result=273+date; break;
case 11:result=304+date; break;
case 12:result=334+date; break;
default:
cout<<"fail";
}
cout<<"是本年的第"<<result<<"天"<<endl;
}
system("pause");
return 0;
}

一些交互逻辑,你就自己想想怎么改吧.

先说你的错误:
if else  的使用不太明确.  代码不规范,不能很好的阅读. 可以学学我的格式.

switch(int)


那么 case 的时候 不要 '1'  这样表示的是 1个字符

第4个回答  2013-11-18
不怎么清楚你的要求是什么,我只是稍微改了一下,你看行不?#include<iostream>
using namespace std;
int main()
{
int year,month,date,result;
cout<<"请输入年份:"<<endl;
cin>>year;
if(year%4==0&&year%100!=0||year%400==0)
{
cout<<year<<"是闰年"<<endl;

cout<<"请输入月份,请输入日期:"<<endl;
cin>>month>>date;
switch(month)
{case'1':result=date;break;
case'2':result=31+date;break;
case'3':result=60+date;break;
case'4':result=91+date;break;
case'5':result=121+date;break;
case'6':result=152+date;break;
case'7':result=182+date;break;
case'8':result=213+date;break;
case'9':result=244+date;break;
case'10':result=274+date;break;
case'11':result=305+date;break;
case'12':result=335+date;
defult:cout<<"fair";}
cout<<"是本年的第"<<result<<"天"<<endl;}
else
{cout<<year<<"是平年"<<endl;
switch(month)
{case'1':result=date;break;
case'2':result=31+date;break;
case'3':result=59+date;break;
case'4':result=90+date;break;
case'5':result=120+date;break;
case'6':result=151+date;break;
case'7':result=181+date;break;
case'8':result=212+date;break;
case'9':result=243+date;break;
case'10':result=273+date;break;
case'11':result=304+date;break;
case'12':result=334+date;
}
cout<<"是本年的第"<<result<<"天"<<endl;}
return 0;
}

跪求大神找出此C++程序的error,并加以改正(最好自己先调试),本人新人...
include<iostream>using namespace std;int main(){ int year,month,date,result; cout<<"请输入年份:"<<endl; cin>>year; if(year%4==0&&year%100!=0||year%400==0) {\/\/这个地方添了一个大括号,不然下面的else不能和这个if匹配 cout<<year<<"是闰年"<<endl; ...

C++程序出现错误:error C2059: syntax error : ')' 本人刚学c++,求高 ...
我编译了一下,应该出问题的是成员不足,少了个成员和一个逗号。hWnd = CreateWindow( szWindowClass,szTitle,WS_OVERLAPPEDWINDOW,100,220,80, NULL,NULL, hInstance,NULL); 100,220,80,后面应该还有一个数。

你好,我拜读了你一个c++程序,但是调试出错,能帮忙么?谢啦
建项目的时候项目类型选错了,应该选择Win32 Console Application,而不是Win32 Application。建好的工程,也可以直接修改工程类型 菜单:Project->Setting->Link 选项卡,在下面的Project Options框里,把\/subsystem:windows 改为\/subsystem:console ,如图:...

运行一段程序C++ 显示有错误 那位大神能帮我解释下这是什么意思啊 (这 ...
打不开库文件comct132.lib,在工程 设置 目录下 有个c++LINK,加上comct132.lib。编译,还是LINK : fatal error LNK1104: cannot open file "comct132.lib"的话,说明你没有文件comct132.lib。搜索一下你的磁盘有没有comct132.lib,没有的话下载一个或从别人那里拷贝一个,放到Visual Studio ->...

关于C++代码,程序出现此错误 error LNK2001, 为啥啊。。。
一.由于编码错误导致的LNK2001。1.不相匹配的程序代码或模块定义(.DEF)文件能导致LNK2001。例如, 如果在C++ 源文件内声明了一变量“var1”,却试图在另一文件内以变量“VAR1”访问该变量,将发生该错误。2.如果使用的内联函数是在.CPP文件内定义的,而不是在头文件内定义将导致LNK2001错误。3....

c++程序出错了,哪位大神帮帮我
说明在提到的头文件stl_iterator_base_types.h当中还有一个也叫point的类 把你的类改个名字吧 比如改成Point 那么就是 include<iostream>#include<math.h>using namespace std;class Point{private: int x; int y;public: Point(int a,int b) { x=a; y=b; } frie...

c++软件测试中,如发现错误(刚刚.obj - 1 error(s), 0 warning(s)),错 ...
先试试Rebuild All,如果不行应该是路径设置问题,最好不要用中文路径和文件名,也不要太长

请高手指教!!vs2008调试c++程序时出现一个错误:项目 : error PRJ0003...
点击菜单中视图->其他窗口->错误列表,打开错误列表,在里面找到编译错误,改正那些错误。

新人求问,sublime text 2运行和调试C++程序时总是出现下列error 2...
这个是因为你没有正确配置SublimeText的原因。也就是没有指定编译器的路径和参数

用visual c++6.0编程序总是显示1error(s),可是我和书上对了是一样的呀...
第一个错误在第一行,“用名空间时,使用编译预处理指令包含相关头文件时,应省略同文件的后缀”。这是书本的描述。所以,第一行应该是这样的 include<iostream> 然后还有个问题出现在最后一行,这个错误有点低级啊,呵呵呵。。。打字错误。return 0;下面是我修改后运行成功的代码:include<iostream> us...

相似回答