⑴ 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);
}
结果: