#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/*要求寫出一個程式錄入學生姓名,出生年、月、日;
最后輸入一個學生的名字輸出TA出生于該年的哪一天*/
typedef struct student{
char name[30];
int year;
int month;
int date;
}Stu;
int Isleap(int year){ //判斷閏年
if(year%100==0&&year%400!=0)
return 0;
if(year%4==0&&year%100!=0)
return 1;
if(year%4!=0) return 0;
if(year%400==0) return 1;
}
int howmanyDay(int year, int month,int date) { //計算加和
int sum = 0;
switch(month){
case 1:sum=date;break;
case 2:sum=31+date;break;
case 3:sum=59+Isleap(year)+date;break;
case 4:sum=90+Isleap(year)+date;break;
case 5:sum=120+Isleap(year)+date;break;
case 6:sum=151+Isleap(year)+date;break;
case 7:sum=181+Isleap(year)+date;break;
case 8:sum=212+Isleap(year)+date;break;
case 9:sum=243+Isleap(year)+date;break;
case 10:sum=273+Isleap(year)+date;break;
case 11:sum=304+Isleap(year)+date;break;
case 12:sum=334+Isleap(year)+date;break;
}
return sum;
}
int main()
{
int n;
scanf("%d",&n); //一共多少組資料
Stu stu[n];
int i;
for(i=0;i<n;i++){
scanf("%s%d%d%d",stu[i].name,&stu[i].year,&stu[i].month,&stu[i].date); //資料錄入
}
char c[10];
scanf("%s",c);
for(i=0;i<n;i++){ //查找名字 輸出對應出生天數
if(strcmp(c,stu[i].name)==0){
int sum=howmanyDay(stu[i].year,stu[i].month,stu[i].date);
printf("%d",sum);
}
}
return 0;
}
不知道是不是我寫的太麻煩了啊,提交到學校的評測系統就會出現“*** stack smashing detected ***: <unknown> terminated”
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/140719.html
標籤:新手樂園
上一篇:問題求助
下一篇:vc6 番茄助手怎么用啊?
