C语言小问题,高手帮帮忙!

[复制链接]
查看11 | 回复3 | 2008-6-18 13:57:26 | 显示全部楼层 |阅读模式
void main()
{int y,m,d,days,flag=1;
printf("input year,month,day: ");
scanf("%d,%d,%d",&y,&m,&d);
switch(m)
{case 1:days=0;break;
case 2:days=31;break;
case 3:days=31+28;break;
case 4:days=31+28+31;break;
case 5:days=31+28+31+30;break;
case 6:days=31+28+31+30+31;break;
case 7:days=31+28+31+30+31+30;break;
case 8:days=31+28+31+30+31+30+31;break;
case 9:days=31+28+31+30+31+30+31+31;break;
case 10:days=31+28+31+30+31+30+31+31+30;break;
case 11:days=31+28+31+30+31+30+31+31+30+31;break;
case 12:days=31+28+31+30+31+30+31+31+31+31+30;break;
default:printf("input error of month!\n");flag=0;}
if(d2)&&((y%4==0)&&(y%100!=0)||(y%400==0)))
days++;
if (flag==1)
printf("year=%dmonth=%dday=%d----NO=%d\n",y,m,d,days);

}
这个程序里面有个flag,这个东西是什么意思,它代表什么,在这个程序中起到什么作用

回复

使用道具 举报

千问 | 2008-6-18 13:57:26 | 显示全部楼层
flag就是标志的意思,就是在程序中设置一个变量用来指示结果是否正确。在这道题中,如果输入错误,即default:printf("input error of month!\n");flag=0;} 就将flag置为0,表明是错误的如果flag为0,输入错误提示;如果flag为1,正确输出结果;
回复

使用道具 举报

千问 | 2008-6-18 13:57:26 | 显示全部楼层
flag相当于一个标记,当你输入的天数大于或等于32是就会出错,此时flag=0,后面只有当flag==1时数据才会打印出来,因为flag如果等于0就说明数据出错,则不打印
回复

使用道具 举报

千问 | 2008-6-18 13:57:26 | 显示全部楼层
在程序中的flag是为拉确定你输入的月份和号数正确,如过输入的月份或号数不正确的话,即 flag=0;那么会提示打印 :input error of day!如果正确的话,即flag=1那么就是打印:year=%d month=%d day=%d----NO=%d\n",y,m,d,days
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行