| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 635 人关注过本帖
标题:如何半路中断此程序
只看楼主 加入收藏
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
结帖率:95%
收藏
已结贴  问题点数:10 回复次数:9 
如何半路中断此程序
程序说明:输入年月日,判断出这一天是这一年的第几天
#include <stdio.h>
void main( )
{
  int day, month, year, sum, leap;
  printf("please input year,month,day\n");
  scanf("%d %d %d",&year,&month,&day);
  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("data error\n");/*输入的月大于12*/
  }
  sum=sum+day;
  if(year%400==0||(year%4==0&&year%100!=0))/*是否为闰年*/
    leap=1;
  else  
    leap=0;
  if(leap==1&&month>2)/*若是闰年且月份大于2*/
    sum++;
  printf("it is the %d day.\n",sum);
}
问题:若输入1983 13 21,则输出结果为data error
                                    it is the -858993439 day.
请教:如何发现month大于12时,即输出data error ,然后结束程序。谢谢!
搜索更多相关主题的帖子: void include please 年月日 
2010-11-29 17:34
hf_gorden
Rank: 2
等 级:论坛游民
帖 子:33
专家分:45
注 册:2010-10-18
收藏
得分:1 
直接return

2010-11-29 17:36
freedgun
Rank: 5Rank: 5
等 级:职业侠客
帖 子:147
专家分:302
注 册:2010-11-11
收藏
得分:0 
在哪中断?

有什么样的付出,就有什么样的收获!!
2010-11-29 19:18
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:9 
程序代码:
#include <stdio.h>
void main( )
{
  int day, month, year, sum, leap;
  printf("please input year,month,day\n");
  scanf("%d %d %d",&year,&month,&day);
  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("data error\n");
      getch();
      return;/*输入的月大于12*/
  }
  sum=sum+day;
  if(year%400==0||(year%4==0&&year%100!=0))/*是否为闰年*/
    leap=1;
  else 

    leap=0;
  if(leap==1&&month>2)/*若是闰年且月份大于2*/
    sum++;
  printf("it is the %d day.\n",sum);
  getch();
}

收到的鲜花
  • qhxxbc2010-11-29 19:29 送鲜花  1朵   附言:可行
2010-11-29 19:22
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
收藏
得分:0 
回复 3楼 freedgun
若输入的月份大于12,则输出data error 后中断

非计算机专业自学新手向大家请教
2010-11-29 19:24
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
收藏
得分:0 
回复 4楼 xiaomarn
可行!非常感谢!
能稍微讲解一下原理吗?为何是return,而不是return加其它字符。谢谢!

非计算机专业自学新手向大家请教
2010-11-29 19:29
xiaomarn
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:348
专家分:2026
注 册:2009-3-18
收藏
得分:0 
void main( )
你函数返回值为void
2010-11-29 19:40
qhxxbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:163
专家分:174
注 册:2010-9-14
收藏
得分:0 
回复 7楼 xiaomarn
您的意思是:return一个空值就会中断程序,不执行后面的步骤?

非计算机专业自学新手向大家请教
2010-11-29 19:45
奎子
Rank: 1
来 自:神木
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-27
收藏
得分:0 
非常感谢4楼的!!!
2010-12-01 19:14
以中
Rank: 3Rank: 3
来 自:长沙
等 级:论坛游侠
帖 子:108
专家分:129
注 册:2010-4-13
收藏
得分:0 
回复 8楼 qhxxbc
return:中断程序,不执行后面的步骤,返回一个相同类型的值到程序的入口。
break:中断程序,不执行后面的步骤;或中断整个循环,执行下一个语句。
continue:中断本次循环,不执行后面的步骤,执行下一个循环。
收到的鲜花
  • qhxxbc2010-12-01 21:06 送鲜花  3朵   附言:谢谢!

道之所存,师之所存。
2010-12-01 20:46
快速回复:如何半路中断此程序
数据加载中...
 
   



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

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