⑴ c語言編程序實現如下功能:輸入任意一個日期的年、月、日的值,求出是星期幾並輸出。
用蔡勒公式即可:
#include<stdio.h>
intmain()
{
inty,m,d,c,w;
printf("輸入年月日(空格間隔):");
scanf("%d%d%d",&y,&m,&d);
if(m==1||m==2)
{//判斷月份是否為1或2y--;m+=12;}
c=y/100;
y=y-c*100;
w=(c/4)-2*c+(y+y/4)+(13*(m+1)/5)+d-1;
while(w<0)w+=7;
w%=7;
if(w==0)printf("星期日");
elseprintf("星期%d",w);
return0;
}
方法二:
#include
void main ()
{
int y,m,d,c,s,w;
printf("請輸入8位年月日,以空格隔開:");
scanf("%d%d%d",&y,&m,&d);
if (m==1) c=d;
else if (m==2) c=31 d;
else if (m==3) c=31 28 d;
else if (m==4) c=31 28 31 d;
else if (m==5) c=31 28 31 30 d;
else if (m==6) c=31 28 31 30 31 d;
else if (m==7) c=31 28 31 30 31 30 d;
else if (m==8) c=31 28 31 30 31 30 31 d;
else if (m==9) c=31 28 31 30 31 30 31 31 d;
else if (m==10) c=31 28 31 30 31 30 31 31 30 d;
else if (m==11) c=31 28 31 30 31 30 31 31 30 31 d;
else if (m==12) c=31 28 31 30 31 30 31 31 30 31 30 d;
if (m>2)
{if (y0==0) {if (y@0==0) c=c 1;}
else if (y%4==0) c=c 1;}
s=(y-1)*365 (y-1)/4-(y-1)/100 (y-1)/400 c;
w=s%7;
switch (w)
{
case 0: printf("星期日");break;
case 1: printf("星期一");break;
case 2: printf("星期二");break;
case 3: printf("星期三");break;
case 4: printf("星期四");break;
case 5: printf("星期五");break;
case 6: printf("星期六");break;
printf("
");
}
}
(1)c語言編程編程序實現如下功能擴展閱讀:
C語言日期函數,日期處理函數:
定義一個表示日期的結構體類型,再分別定義函數完成下列功能:計算某一天是對應年的第幾天,這一年一共多少天;計算兩個日期之間相隔的天數。兩個日期由鍵盤輸入。
演算法思想:
設定結構體類型表示日期類型名為 Date,利用 typedef 將其定義為日期型類型名,有三個整型類型的成員分別表示年、月、日。
設定函數計算輸入的日期是這一年的第幾天。函數的形參為日期型變數,函數體中設定整型數組存放每個月的天數,二月份的天數為 28 天。
設定函數判斷年份是否為閏年以決定二月份的天數。根據輸入的日期月份,在數組中將相應的月份天數求和,假日曰期即為天數。
設定函數完成兩個日期的比較,比較形參 d 和 s 兩個日期的大小。首先比較年,同年的比較月,同月的比較日。變數 start 保存輸入的小的日期年份,end 保存輸入日期大的年份,然後計算兩個日期之間的天數。
程序由 6 個函數構成,yearday() 函數計算某年的天數,monthday() 函數計算某年二月份的天數,dayofyeaK() 函數計算某日期是某年的第幾天。
cmpdate() 函數比較兩個日期的大小,interday() 函數計算兩個日期之間的天數。
dayofyear() 函數調用 monthday() 函數,interday() 函數調用 cmpdate() 函數。
yearday() 函數、dayofyear() 函數;主函數調用 yearday() 函數、dayofyear() 函數、interday() 函數。
⑵ 編寫C語言程序實現下述功能
根據你的要求,只要將以下代碼寫入程序即可實現你說的功能,具體如下:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define LIST_INIT_SIZE 20
#define LISTINCREMENT 10
struct myList
{
int elem;
int length;
int listsize;
};
int InitList(myList&L)
{
L.elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));
if(!L.elem)
{
exit(0);
}
L.length=0;
L.listsize=LIST_INIT_SIZE;
return 1;
}
int ListInsert(myList &L,int i,int x)
{
int *newbase,*p,*q;
if(i<1||i>L.length-1)
{
return -1;
}
if(L.length>=L.listsize)
{
if(!(newbase=(int*)realloc(L.elem,(LIST_INIT_SIZE+LISTINCREMENT)*sizeof(int))))
exit(0);
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
p=L.elem+i;
for(q=L.elem+L.length-1;q<=p;--q)
{
*(q+1)=*q;
}
*p=x;
++L.length;
return 1;
}
int ListDelete(myList &L,int i)
{
int *newbase,*p,*q;
if(i<1||i>L.length-1)
{
return -1;
}
if(L.length<1)
{
return -1;
}
p=L.elem+i;
for(q=p;q<=L.elem+L.length-1;++q)
{
*q=*(q+1);
}
--L.length;
return 1;
}
int main(void)
{
int n,i,x;
SqList L;
InitList(L);
printf("請輸入線性表L的長度:\n");
scanf("%d",&n);
printf("請輸入數據:\n");
for(i=0;i<n;i++)
{
scanf("%d",&L.elem[i]);
}
printf("順序表的元素有:\n");
for(i=0;i<n;i++)
{
printf("%d ",L.elem[i]);
}
printf("\n");
printf("請輸入插入位置i:\n");
scanf("%d",&i);
ListInsert(L,i,4);
printf("插入後的線形表:\n");
for(i=0;i<=n;i++)
{
printf("%d ",L.elem[i]);
}
printf("請輸入刪除位置i:\n");
scanf("%d",&i);
ListInsert(L,i);
printf("刪除後的線形表:\n");
for(i=0;i<=n;i++)
{
printf("%d ",L.elem[i]);
}
return 0;
}
⑶ C語言編寫一個程序,實現如下功能:從鍵盤輸入一個三位數,求各位數字之和.簡單點!!!
#include"stdio.h"
voidmain()
{
intn,sum=0;
printf("請輸入一個三位數:");
scanf("%d",&n);
sum=n/100+n%100/10+n%10;//百位數+十位數+個位數
printf("這個三位數各位數字之和是%d ",sum);
}
結果: