1. 計算生日是星期幾 c語言
程序的演算法思路很好!!!
錯誤①scanf輸入的格式說明符不要用空格隔開,因為輸入數據是用空格隔開的。應該 為scanf("%d%d%d",&a,&b,&c);
②for語句的格式是for(;;)而不是for(,,)。所以應該為for(i=1;i<a;i++);
③數組第n個元素下標為n-1,所以i<b-1才對;
④月份b要大於等於2時才要判斷是否為閏年;
⑤在main的後面和程序末尾忘記加{};
建議:不要用abc表示年月日,最好採用能直接識別的year,month,days;
不是換行越多程序就越清晰;
附修改過的程序
#include<stdio.h>
void main()
{
int a,b,c,sum=0;
int i,j;
int d[12]={31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d%d%d",&a,&b,&c);
for(i=1;i<a;i++)
{
sum=sum+365;
if(i%4==0&&i%100!=0||i%400==0)
sum++;
}
for(i=0;i<b-1;i++)
sum=sum+d[i];
if(b>1)
if(a%4==0&&a%100!=0||a%400==0)
sum++;
sum=sum+c;
j=sum%7;
switch(j)
{
case 0:printf("Sunday\n");break;
case 1:printf("Monday\n");break;
case 2:printf("Tuesday\n");break;
case 3:printf("Wednesday\n");break;
case 4:printf("Thursday\n");break;
case 5:printf("Friday\n");break;
case 6:printf("Saturday\n");break;
}
}
2. C語言 求同一天生日
愛情就是你愛他 他也愛你
3. c語言編寫一個猜生日程序,向用戶顯示5張數字卡片,根據回答猜出用戶的生日是哪一天
#include<stdio.h>
main()
{intlow,high,mid,n;
while(1){
mid=15;low=0;high=31;
printf("你的生日比%d號大還是小?大輸入1,小輸入2,等於3.
",mid);
scanf("%d",&n);
while(n!=3){
if(n==1)low=mid+1;
if(n==2)high=mid-1;
mid=(low+high)/2;
printf("你的生日比%d號大還是小?大輸入1,小輸入2,等於3.
",mid);
scanf("%d",&n);
}
printf("你的生日是%d號
",mid);
}
}
如圖所示,望採納。。。。。。
4. c語言中用結構體求生日差,要求精確到日
#include<stdio.h>
#include<time.h>
//structtm{
// int tm_sec; /*secondsaftertheminute[0-60]*/
// int tm_min; /*minutesafterthehour[0-59]*/
// int tm_hour; /*hourssincemidnight[0-23]*/
// int tm_mday; /*dayofthemonth[1-31]*/
// int tm_mon; /*monthssinceJanuary[0-11]*/
// int tm_year; /*yearssince1900*/
// int tm_wday; /*dayssinceSunday[0-6]*/
// int tm_yday; /*dayssinceJanuary1[0-365]*/
// int tm_isdst; /*DaylightSavingsTimeflag*/
// long tm_gmtoff; /*offsetfromCUTinseconds*/
// char *tm_zone; /*timezoneabbreviation*/
//};
intmain()
{
structtmstart_date;
structtmend_date;
time_tstart_time,end_time;
doubledates;
//startdate
start_date.tm_sec=0;
start_date.tm_min=0;
start_date.tm_hour=0;
start_date.tm_mday=1;
start_date.tm_mon=1;
start_date.tm_year=2015;
//enddate;
end_date.tm_sec=0;
end_date.tm_min=0;
end_date.tm_hour=0;
end_date.tm_mday=1;
end_date.tm_mon=1;
end_date.tm_year=2016;
start_time=mktime(&start_date);//seconds
end_time=mktime(&end_date);//seconds
dates=difftime(end_time,start_time)/(24*60*60);
printf("difference:%.lf ",dates);
return0;
}
5. 輸入身份證號碼輸出年齡,生日的C語言程序
#include<stdio.h>
#include<stdlib.h>
intidage(char*str)
{inti;
charidcard1[100];
intyear;
intyear;
for(i=0;i<=3;i++)
{
idcard1[i]=str[i+6];
}
idcard1[i]='