#include <stdio.h>
void main()
{
int day,year,month,er,sum;
printf("请输入年月日:");
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("对不起,输入错误的日期!");break;
}
sum=sum+day;
if ((year%4==0)&&(year%100!=0)||(year%400==0))
er=1;
else
er=0;
if(er==1&&month>2);
printf("这是%d年的第%d天\n",year,sum);
}
求找错,为什么2月有31 30 29号,甚至输入2013,3,213都是正确的 我用的VC++6.0
è¾å ¥å¹´ææ¥ä¸ä¸ªå¼ï¼å ç´¯å 该年ä¹åå个æçæ¯æ天æ°ï¼æåç´¯å æ¥æ天æ°å³å¯è·åç»æã
ä¸ãç®æ³è®¾è®¡ï¼
1ãè¾å ¥å¹´ææ¥ä¸ä¸ªå¼ï¼
2ã为ä¿è¯ç¨åºå¥å£®æ§ï¼å¯ä»¥å¯¹ä¸ä¸ªå¼çåæ³æ§è¿è¡å¤æï¼åªå¯¹åæ³æ°æ®è¿è¡æä½ï¼
3ãç´¯å ä¹ååæ天æ°ï¼
4ãç´¯å å½åæ¥å¼ï¼
5ãè¾åºç»æã
äºã注æç¹ï¼
å¯ä»¥ä½¿ç¨æ°ç»åå¨å个æ份ç天æ°ï¼ç¨å¾ªç¯ç´¯å ãéè¦æ³¨æçæ¯é°å¹´çå¤æã对äºé°å¹´ï¼2æè¦å¤å ä¸å¤©ã
ä¸ãåè代ç ï¼
#include <stdio.h>程序在提示输入错误日期后,就不能再输出天数了,应该直接退出。
我把所有可能输错的情况都加到代码里面去了,代码如下:
#include <stdio.h>这段代码设计很巧妙
但是你的问题也就是出在这段代码上
看到case 2和case 3没?
在case 2的时候,你没有对于day进行检查,所以你不知道30,31是合法的
在case 3的时候,你没有对于year进行检查,所以你没有办法知道 是+59还是58
所以你应该一开始先增加day的检查
if (day <= 0 || day > 31)怎么加 如何加
输入某年某月某日,输出这是今年的第几天,C语言问题
mdays[1] = 29;\/\/设置闰年二月值。if(y<0 || m<=0 || m>12 || d<=0 || d>mdays[m-1])\/\/输入非法。{ printf("输入年月日不合法\\n");\/\/提示并退出。return -1;} for(i = 0; i < m-1; i ++)\/\/累加之前各个月。r+=mdays[i];r+=d;\/\/累加日期值。printf("%d\\n...
C语言编程:输入某年某月某日判断这一天是一年的第几天的程序是是什么...
include \\x0d\\x0a\\x0d\\x0a\/\/返回指定年月日是对应年度的第几天\\x0d\\x0aint getDays(int month,int day);\\x0d\\x0aint isRunnian(int year);\\x0d\\x0a\\x0d\\x0aint main(int argc,char* argv[])\\x0d\\x0a{\\x0d\\x0aint year=0;\\x0d\\x0aint month=0;\\x0d\\x0...
c语言编程:输入某年某月某日,计算出这一天是该年的第几天?该怎么解答啊...
\/\/输入年月日,输出是该年第几天 include<stdio.h> int sum(int month,int day){ int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int i;for(i=1;i<month;i++)day+=days[i];return(day);} int leap(year){ int leap=0;if((year%4==0&&year%100!=0)||(yea...
c语言编程:编写程序,输入某年某月某日,判断这一天是这一年的第几天...
int a1[]={31,29,31,30,31,30,31,31,30,31,30,31};int a2[]={31,28,31,30,31,30,31,31,30,31,30,31};printf("输入年月日(用逗号隔开):\\n");scanf("%d,%d,%d",&y,&m,&d);if (y%4==0&&y%100!=0||y%400==0) \/*闰年,2月29天*\/ { while (i<m-1){ s...
C语言编程:输入某年某月某日,判断这一天是这一年的第几天?
include<stdio.h> \/\/输入某年某月某日,判断这一天是这一年的第几天?int getDaysByMonth(int m,int d,char flag){ int c;if(flag=='r'){\/\/闰年 if(m==2){\/\/2月是29天 return(31+d);}else if(m>2){ c=0;m=m-1;for(;m>0;m--){ if(m==1||m==3||m==5||m==7...
C语言算某年某月某日是这年的第几天哪有问题
int main() { int i,year,month,day,sum;printf("请输入年月日:");scanf("%d %d %d",&year,&month,&day);sum=day;for(i=1;i<month;i++) { switch(i) { case 1:case 3:case 5:case 7:case 8:case 10:case 12:sum+=31;break;case 4:case 6:case 9:case 11:sum+=30;b...
C语言编程问题:输入某年某月某日,判断这一天是一年的第几天,大神帮我...
给你提供一个你对照看——include "stdio.h"int main(int argc,char *argv[]){int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31},y,m,d;printf("Please enter y, m, d(int >0)...\\n");if(scanf("%d%d%d",&y,&m,&d)!=3 || y<1 || m<1 || m>12 || d<...
C语言编程:输入某年某月某日,判断这一天是这一年的第几天?
include <stdio.h> int getDaysByMonth(int m,int d,char flag){ int c;if(flag=='r'){\/\/闰年 if(m==2){\/\/2月是29天 return (31+d);}else if(m>2){ c=0;m=m-1;for(;m>0;m--){ if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){ c+=31;}else...
C语言编程:输入某年某月某日判断这一天是一年的第几天的程序是是什么...
printf("输入日期是对应年份的第%d天",days+1);}else{ printf("输入日期是对应年份的第%d天",days);} return 0;} \/\/循环实现 int getDays(int month,int day){ int NUMBER[12]={31,28,31,30,31,30,31,31,30,31,30,31};int result=day;if (month >12){ \/\/避免出现数组越界情况 ...
“输入某年某月某日,判断这一天是这一年的第几天”用c语言怎样编程
{ int day,month,year,sum,leap;printf("\\nplease 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;cas...