当前位置:首页 » 编程语言 » c语言求生日
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言求生日

发布时间: 2022-07-07 21:23:48

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

year=atoi(idcard1);//atoi函数c语言库函数将字符串转换为整数,也就得到年份;

age=2015-num;

returnage;

}

intidsex(char*str)

{

if(str[16]%2==0)

return-1;

if(str[16]%2!=0)

return1;

}

voidmain()

{charidcard[100];

intsex;

intage;

gets(idcard);

sex=idsex(idcard);

if(sex==1)

printf("男 ");

if(sex==-1)

printf("女 ");

idage(idcard);

age=idage(idcard);

printf("此人今年是%d岁 ",age);

}

得到年龄的函数还可以写成:

intidage(char*str)

{inti;

charidcard1[100];

intyear=0;

for(i=0;i<=3;i++)

{

idcard1[i]=str[i+6];

}

idcard1[i]='';

for(i=0;i<=3;i++)


{

year=year*10+idcard1[i]-48;//得到年份;

}


age=2015-year;

returnage;

}

6. 求编程 C语言 计算生日是当年的第多少天

算了,我重改一个,但这个程序只能算出正确结果,不判断输入的年月日是否合法,其中考虑了闰年等问题。

#include "iostream.h"
int main()
{
cout<<endl<<"此程序用于计算某日期为当年第几天。"<<endl<<endl;
cout<<"请输入一个日期(年月日用空格隔开,前面不要加零):";
int l,y,r;
cin>>l>>y>>r; //输入一个日期
int tian=0;
switch (y)
{
case 12:
tian=tian+30;//如果月份是12月,那么加上11月的全部天数。再顺序加上以下的所有月份天数。
case 11:
tian=tian+31;//如果月份是11月,那么加上10月的全部天数。再顺序加上以下的所有月份天数。
case 10:
tian=tian+30;
case 9:
tian=tian+31;
case 8:
tian=tian+31;
case 7:
tian=tian+30;
case 6:
tian=tian+31;
case 5:
tian=tian+30;
case 4:
tian=tian+31;
case 3:
(l%400==0 || (l%4==0 && l%100!=0))?(tian=tian+29):(tian=tian+28);
case 2:
tian=tian+31;
case 1:
tian=tian+r;//最后加上当月的号数。
}
cout<<"此日期为当年第"<<tian<<"天"<<endl;
return 0;
}

7. 编写c语言程序,输入一位学生的生日(年:yo,月:mo,日:do);并输入当前的日期(年:y1,月

摘要 #include

8. 跪求一个C语言程序输出“生日快乐”(TC)

#include<stdio.h>

#include<math.h>

#include<string.h>

#include<stdlib.h>

#include<windows.h>

chars[8];

voidshow1(char*a)

{

system("cls");

printf("☆☆☆★☆☆☆★☆☆☆★ ");

printf("★☆ ");

printf("☆%s☆ ",a);

printf("☆生日快乐☆ ");

printf("☆★ ");

printf("★☆☆☆★☆☆☆★☆☆☆ ");

Sleep(200);

}

voidshow2(char*a)

{

system("cls");

printf("★☆☆☆★☆☆☆★☆☆☆ ");

printf("☆★ ");

printf("☆%s☆ ",a);

printf("☆生日快乐☆ ");

printf("★☆ ");

printf("☆☆☆★☆☆☆★☆☆☆★ ");

Sleep(200);

}

voidshow3(char*a)

{

system("cls");

printf("☆★☆☆☆★☆☆☆★☆☆ ");

printf("☆☆ ");

printf("☆%s★ ",a);

printf("★生日快乐☆ ");

printf("☆☆ ");

printf("☆☆★☆☆☆★☆☆☆★☆ ");

Sleep(200);

}

voidshow4(char*a)

{

system("cls");

printf("☆☆★☆☆☆★☆☆☆★☆ ");

printf("☆☆ ");

printf("★%s☆ ",a);

printf("☆生日快乐★ ");

printf("☆☆ ");

printf("☆★☆☆☆★☆☆☆★☆☆ ");

Sleep(200);

}

voidtransit(char*a,intn)//将名字的格式转成4个字。便于排版

{

inti,t;

memset(s,'',sizeof(s));

switch(n)

{

case2:t=3;break;

case4:t=2;break;

case6:t=1;break;

}

for(i=0;i<n;i++)

{

s[t+i]=a[i];

}

}

intmain()

{

intt;

charname[10];

printf("请输入生日者得姓名(汉字,不要超过3个字): ");

gets(name);

t=strlen(name);

transit(name,t);

while(1)

{

show1(s);

show2(s);

show3(s);

show4(s);

}

return0;

}

9. C语言 输入一位学生的生日(年 月 日),并输入当前的日期(年 月 日),输出该生的实际年龄。

#include<stdio.h>
main()
{
int y0,m0,d0,y1,m1,d1,y,m,d;
while(1)
{
printf("请输入学生的生日");scanf("%d %d %d",&y0,&m0,&d0);
printf("请输入当前的日期");scanf("%d %d %d",&y1,&m1,&d1);
y=y1-y0;
m=m1-m0;
d=d1-d0;
//printf("该学生的年龄为%d岁%d月%d天",y,m,d);
if(y>=0)
{
if(m>=0)
{
if(d>=0)printf("1该学生的年龄为%d岁",y);//y>=0,m>=0,d>=0输出年龄
else
{
m=m-1;//如果d<0,m减1,再判断m是否大于等于0
if(m>=0)printf("2该学生的年龄为%d岁",y);//y>=0,m>=0,d<0输出年龄
else
{
y=y-1;//如果m<0,y减1,再判断y是否大于等于0
if(y>=0)printf("3该学生的年龄为%d岁",y);//y>=0,m<0,d<0输出年龄
else
{
printf("4输入有误");//y<0,m<0,d<0
}
}
}
}
else //那么在y>=0,而m<0的情况下
{
y=y-1;
if(y>=0)printf("6该学生的年龄为%d岁",y);
else
{
printf("7输入有误");
}
}
}
else printf("5输入有误");//最先判断年份,如果y<0,就错了,因为当前日期不可能小于学生的生日
getchar();
getchar();
}
}