为了账号安全,请及时绑定邮箱和手机立即绑定

代码无论怎么对比,反反复复的对比,一个个地方的修改,都是错误的,求大神帮查找错误

#include <stdio.h>

 

int main() 

 

 

    /* 定义需要计算的日期 */

 

    int year=2008;

 

    int month=8;

 

    int day=8;

     

    int sum, flag;

 

    switch(month)

{

    case 1:sum=0;break;

    case 2:sum=31;break;

    case 3:sum=59;break;

    case 4:sum=90;break;

    case 5:sum=120;break;

    case 6:sum=151;break;

    case 7:sum=181;break;

    case 8:sum=212;break;

    case 9:sum=243;break;

    case 10:sum=273;break;

    case 11:sum=304;break;

    case 12:sum=334;break;

    default:printf("错误");break;

    sum=sum+day;

    if(year%400==0||(year%4==0 && year%100!=0))

        flag=1;

    else

        flag=0;

        

    if(flag==1&&month>2)

        sum++;

       printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);

    return 0;

 

}



正在回答

8 回答

http://img1.sycdn.imooc.com//574d5fc40001c67708250524.jpgvc++6.0, win10 实测可以,你的报错是啥呢?

0 回复 有任何疑惑可以回复我~
#1

imooc_粉丝 提问者

非常感谢!正解
2016-06-05 回复 有任何疑惑可以回复我~

#include <stdio.h>

int main() 

    /* 定义需要计算的日期 */

    int year = 2008;

    int month = 8;

    int day = 8;

    int sum ,flag;

    /*

     * 请使用switch语句,if...else语句完成本题

     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”

     * 小编还是希望大家独立完成哦~

     */

     switch(month)

     {

         case 1:sum = 0; break;

         case 2:sum = 31; break;

         case 3:sum = 59; break;

         case 4:sum = 90; break;

         case 5:sum = 120; break;

         case 6:sum = 151; break;

         case 7:sum = 181; break;

         case 8:sum = 212; break;

         case 9:sum = 243; break;

         case 10:sum = 273; break;

         case 11:sum = 304; break;

         case 12:sum = 334; break;

         default: printf("一年当中只有12个月哦~"); break;

     }

     if( (year%4==0&&year%100!=0)||(year%400==0))

     {

        flag = 1;

     }

     else

     {

         flag = 0;

     }

     if(flag==1&&month>2)

        sum = sum + day + 1;   //如果是闰年且满足以上条件,那么除了要加1天外还要加上day

        else

        {

            sum = sum + day;//如果不是闰年,那直接加day就行

        }

    printf("%d年%d月%d日是该年的第%d天\n",year,month,day,sum);

return 0;

}

注意看加粗倾斜这段代码,小编为了让咱们学到更多的东西也是蛮拼的

0 回复 有任何疑惑可以回复我~

printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);

的确是这句话的毛病,是year前面的那个","是中文标点符号,改成英文半角的就可以了","

0 回复 有任何疑惑可以回复我~
#1

imooc_粉丝 提问者

答案正确,你说的是对的,我刚检查过了,你是正确的,我是不是把积分给错人了,sorry
2016-06-05 回复 有任何疑惑可以回复我~
#2

小雾3378873 回复 imooc_粉丝 提问者

呵呵!
2016-06-05 回复 有任何疑惑可以回复我~
printf("%d年%d月%d日是该年的第%d天",year,month,day,sum);

你这句有问题,多一个163变量。。。

printf("%d这一年的%d月的%d是这一年当中的第%d天", year, month, day, sum);

改成这样就好了

0 回复 有任何疑惑可以回复我~
#1

imooc_粉丝 提问者

还是错误的,不信你可以把你的代码复制到编辑器中查看
2016-05-31 回复 有任何疑惑可以回复我~

回复 IT_阿飞:--------------------Configuration: help - Win32 Debug--------------------

Compiling...

help.c

e:\练习\1\help.c(41) : error C2018: unknown character '0xa3'

e:\练习\1\help.c(41) : error C2018: unknown character '0xac'

e:\练习\1\help.c(41) : error C2146: syntax error : missing ')' before identifier 'year'

e:\练习\1\help.c(41) : error C2059: syntax error : ')'

执行 cl.exe 时出错.

help.exe - 1 error(s), 0 warning(s)


0 回复 有任何疑惑可以回复我~
#1

youngchou1997

这是你的代码在vc++6.0的运行结果
2016-05-30 回复 有任何疑惑可以回复我~
#include <stdio.h>
 
int main() 
 
{ 
 
    /* 定义需要计算的日期 */
 
    int year=2008;
 
    int month=8;
 
    int day=8;
     
    int sum, flag;
 
    switch(month)
{
    case 1:sum=0;break;
    case 2:sum=31;break;
    case 3:sum=59;break;
    case 4:sum=90;break;
    case 5:sum=120;break;
    case 6:sum=151;break;
    case 7:sum=181;break;
    case 8:sum=212;break;
    case 9:sum=243;break;
    case 10:sum=273;break;
    case 11:sum=304;break;
    case 12:sum=334;break;
    default:printf("错误");break;
} 
    sum=sum+day;
    if(year%400==0||(year%4==0 && year%100!=0))
        flag=1;
    else
        flag=0;
        
    if(flag==1&&month>2)
        sum++;
       printf("%d这一年的%d月的%d是这一年当中的第%d天", year, month, day, sum);
    return 0;
 
}


0 回复 有任何疑惑可以回复我~
#1

imooc_粉丝 提问者

放在VC++6.0编译不报错,但是就是无法运行
2016-05-27 回复 有任何疑惑可以回复我~

C语言里的变异错误error:stray'\243'in program

代表编译器在编译源文件时遇到了不可识别的非法字符。其值为ascii码值243。
这一个值并不在合法的英文字符范围(0~127)范围内,所以一般都是由于误输入造成的。
出现这类问题时,需要根据提示错误的行数,找到对应行,然后重点查找以下几个方面:
1 是否存在汉字。
大多数的C编译器并不识别汉字,所以变量名中不要使用汉字。
2 是否存在汉语标点。
这种情况是最常见的。C语言要求所有的符号必须是英文半角符号,当有中文标点符号出现时,就会有此类错误出现,比如逗号应为',' 而不能是','。
3 是否有全角英文字符。
在C中,全角字符同样是非法的,比如a写作a。
对于这一点,需要注意的是全角的空格,由于空格的不可见性,全角空格比较难查,当无法查到有显式的错误符号时,可以尝试删除所有空格,重新编译。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

代码无论怎么对比,反反复复的对比,一个个地方的修改,都是错误的,求大神帮查找错误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信