还是那个输入年月日算出是第几天的问题
我想在输出的时候判断 如果是天数是1结尾的就输出 ......is the *1st day.
如果2结尾就......is the *2nd day.
3就是......is the *3rd day.
其余都......is the *4rd day.
#include<stdio.h>
#include<conio.h>
char fst(int s);
main()
{
int i,s=0,k=0,y,m,d,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("Please input YEAR MONTH DAY:\n");
scanf("%d %d %d",&y,&m,&d);
if((y%4==0&&y%100!=0)||(y%100==0)) k=1;
if((d<1||d>31)||((m==2&&k!=1)&&d>28)||((m==2&&k==1)&&d>29)||(m<1||m>12))
printf("Input Error!");
for(i=0;i<m;i++)
s=s+a[i];
if(k==1&&m>2) s=s+d+1;
else s=s+d;
printf("DATE %d-%d-%d is the %d",y,m,d,s);
fst(s);
printf(" day of year %d.",y);
}
char fst(int s)
{
int j;
char st[]="st";
char nd[]="nd";
char rd[]="rd";
char t[]="th";
j=(s+10)%10;
if(j==1) puts(st);
else if(j==2) puts(nd);
else if(j==3) puts(rd);
else puts(t);
}
但是现在有毛病。。。 输入错误后,还是输出了 这一天是第几天。 不用goto怎么做啊?
用exit(0); 函数行吗?
再就是后面关于1st 2nd。。。的输出我觉得有点麻烦, 有没有简单点的?
还有就是用puts函数输出后它就自动换行了。。怎么让下一句的printf接着输出?
不会了。。
那位帮帮我啊?
谢谢各位了·~~
[此贴子已经被作者于2007-6-30 10:35:43编辑过]