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]='