當前位置:首頁 » 編程語言 » c語言求生日
擴展閱讀
sqlserver數值求和 2022-08-20 04:30:57
華為克隆視頻存儲 2022-08-20 04:25:49

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();
}
}