自学的一个“成果”。
自学了几十天了,总算弄出个对于我来说相对“大”点的东西来了。虽然它的“成果”是微乎其微的,但对于我来说,也是可以值得浮几白的了。呵呵,刚才弄个附件传了一下,后来自己在机器上一看,不成,因为DOS不支持中文。所以,就发个源码吧,请众位高手指教一二:
#include<stdio.h>
char hello[5][300]={{"*************************************************************\n"},
{"您好,欢迎您来玩这个小游戏。您可以输入年、月、日或者年份、天数\n"
"或者年份,系统为您判定它是一年中的第几天或者那年的几月几日或者\n"
"判定它是闰年还是平年。请不要输入数字以外的字符,那样会造成不必\n"
"要的麻烦。谢谢!\n"},
{" 请输入年、月、日:\n"},
{"请输入年份及天数:\n"},
{"请输入年份:\n"} };
static int yue[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{ 0,31,29,31,30,31,30,31,31,30,31,30,31}} ;
int pr(int n)
{
int c;
c= n%4==0&&n%100!=0|| n%400==0;
return c;
}
int panduan_1(int y,int r,int i)
{
int j,n=0;
for(j=0;j<y;j++)
n+=yue[i][j];
n+=r;
return n;
}
void panduan_2(int n,int r,int i)
{
int j=1,m=1;
while(r>yue[i][j])
{
r-= yue[i][j];
j++;
m++;
}
printf("这是%d年,%d月,%d日\n",n,m,r);
}
void caidan()
{
printf("%s\n\n",hello[0]);
printf("请您作出选择:\n");
printf("1. 输入年、月、日,求它是那年中的哪一天。\n"
"2. 输入年份及天数,求它是那年中的哪月哪日。\n"
"3. 输入年份,求它是平年或者是闰年。\n"
"4. 退出。\n");
printf("请输入选择:\n");
}
int main(void)
{
int n,y,r,i,j;
printf("%s%s\n",hello[0],hello[1]);
do
{
caidan();
scanf("\n%d",&j);
puts(" ");
while(j<1||j>4)
{
printf("您输入的字符非法,请重新选择:\n");
caidan();
scanf("%d",&j);
}
}
while(j<0||j>5);
while(j!=4)
{
switch(j)
{
case 1:printf("请输入年、月、日,空格格开,enter结束输入:\n");
scanf("\n %d %d %d",&n,&y,&r);
puts(" ");
i=pr(n);
j=panduan_1(y,r,i);
printf("它是%d年的第%d天\n",n,j);
break;
case 2:printf("请输入年、天数,空格格开,enter结束输入:\n");
scanf("%d %d",&n,&r);
puts(" ");
i=pr(n);
panduan_2(n,r,i);
break;
case 3:printf("请输入待测试的年份:\n");
scanf("%d",&n);
i=pr(n);
if(i==0)
{
printf("它是平年。\n");
break;
}
if(i==1)
{
printf("它是闰年。\n");
break;
}
}
caidan();
scanf("%d",&j);
}
if(j==4)printf("谢谢您!再见!");
getchar();
}
[[it] 本帖最后由 广陵绝唱 于 2008-3-1 23:47 编辑 [/it]]
2.rar
(8.9 KB)