求C++或者c语言比较好的给编个程序。。最好是C++

程序就是“随便输入个年月日能够正确输出那天是星期几(还要考虑闰年之类的)”,求救啊。。希望程序很精简,因为我们老师还要我们照着程序画一个类似流程图的东东,,如果程序复杂我... 程序就是“随便输入个年月日能够正确输出那天是星期几(还要考虑闰年之类的)”,求救啊。。希望程序很精简,因为我们老师还要我们照着程序画一个类似流程图的东东,,如果程序复杂我画起来就很难了。。。。请大家帮忙 展开
 我来答
伍拾步
2011-04-09 · TA获得超过8199个赞
知道大有可为答主
回答量:1852
采纳率:100%
帮助的人:1954万
展开全部
精简的。。。
#include<stdio.h>
void main()
{
int d[12]={31,28,31,30,31,30,31,31,30,31,30,31};//平年每个月的天数
char week[7][3]={"日","一","二","三","四","五","六"};
int day,month,year,i;
long sum=0;//sum为从公元1年1月1日至今的天数
printf("请输入年月日,以空格隔开\n");
scanf("%d %d %d",&year,&month,&day);
if ((year%4==0&&year%100!=0)||(year%400==0))d[1]++;//闰年二月为29天
if (year<1||month<1||month>12||day<1||day>d[month-1])printf("\n日期输入错误!\n");
else
{
for(i=0;i<month-1;i++)sum+=d[i];//求前month-1个月总天数
sum+=day;//加上month这个月已经过完的天数
sum+=(year-1)*365+((year-1)/4-(year-1)/100+(year-1)/400);//加上前year-1年总天数
printf("星期%s\n",week[sum%7]);
}
}
啊DAI乖
2011-04-09 · TA获得超过105个赞
知道答主
回答量:177
采纳率:0%
帮助的人:176万
展开全部
给分哦,以下代码复制,在VC6.0++使用。
#include<stdio.h>
#include<stdlib.h>
int isLeapYear(int year)
{
if( ( year%4==0 && year%100!=0) || (year%100==0) && ( year%3200!=0 ) )
return 1;
else return 0;
}

int main()
{
loop2:
system("cls");
int a[12]={1,0,1,0,1,0,1,1,0,1,0,1};
int weekDay,c,y,temp;
int year,month,day;
char k;
printf("请按年月日格式输入(如1949 10 1): ");
loop: scanf("%d%d%d",&year,&month,&day);

//判断输入的年月日是否正确
if(year<0)
{
printf("年份不能为负数!请重输: ");
goto loop;
}
else if(month<1||month>12)
{
printf("输入月份只能在1-12之间!请重输: ");
goto loop;
}
else if(day<1||day>31)
{
printf("日的最大范围只在1-31之间!请重输: ");
goto loop;
}
else if(month==2 && day>29)
{
printf("二月没有%d日!请重输: ",day);
goto loop;
}
else if(month==2)
{
if(!isLeapYear(year) && day==29)
{

printf("该年不是闰年,二月没有29日!请重输: ");
goto loop;
}
}
else if(!a[month-1] && day==31)
{
printf("%d月是小月,没有31日!请重输: ",month);
goto loop;
}

//蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1

loop3: if( month==1 || month==2)
{
month+=12;
year--;
}
y = year % 100;
c = year / 100 ;
temp = y + y/4 + c/4 - 2*c + 26*(month+1)/10 + day - 1;
while(temp<0)
{
temp+=7;
}
weekDay = temp%7;

printf("\n\n那天正逢星期");
switch(weekDay)
{
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("\n\n\n");
printf("退出程序吗?(y/n)\n\n");
do k=getchar();
while(k!='y'&&k!='n'&&k!='Y'&&k!='N');
if(k=='y'||k=='Y') ;
else goto loop2;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-15
展开全部
#include <sys/stat.h>

#include <fcntl.h>

#include <errno.h>

#include <netdb.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <string.h>

#include <stdlib.h>

#include <stdio.h>

#include <unistd.h>

main()

{
//创建套接字

int serverSocket= socket(AF_INET,SOCK_STREAM,0);

struct sockaddr_in server_addr;

struct sockaddr_in clientAddr;

int addr_len = sizeof(clientAddr);
int client;
char buffer[200];

//创建地址

bzero(&server_addr,sizeof(server_addr));

server_addr.sin_family =AF_INET;

server_addr.sin_port = htons(5555);

server_addr.sin_addr.s_addr = htonl(INADDR_ANY);

//绑定

bind(serverSocket,(struct sockaddr *)&server_addr,sizeof(server_addr));
//帧听

listen(serverSocket,5);
printf("客户端发过来的 :\n");
//接收
client=accept(serverSocket,(sockaddr *)&clientAddr,(socklen_t*)&addr_len);
printf("客户端发过来的 :\n");
while(1)
{
if(recv(client,buffer,sizeof(buffer),0)>0)
printf("客户端发过来的 : %s\n",buffer);
}
return 0;
}

//客户端
#include <sys/stat.h>

#include <fcntl.h>

#include <errno.h>

#include <netdb.h>

#include <sys/types.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <arpa/inet.h>

#include <string.h>

#include <stdlib.h>

#include <stdio.h>

#include <unistd.h>

main()

{

struct sockaddr_in serverAddr;

int clientSocket=socket(AF_INET,SOCK_STREAM,0);

char sendbuf[200];

//创建地址信息

serverAddr.sin_family=AF_INET;

serverAddr.sin_port=htons(5555);

serverAddr.sin_addr.s_addr=inet_addr("127.0.0.1");

//连接服务器

connect(clientSocket,(sockaddr*)&serverAddr,sizeof(serverAddr));

printf("连接目标主机中.....\n连接完成......\n");

//

while(1)

{

printf("请输入发给服务器的数据 : ");

scanf("%s",sendbuf);

//strcmp函数作用,比较两个东东(按ASCII值大小相比较),相同就==0。

if(strcmp(sendbuf,"x")==0)

break;

send(clientSocket,sendbuf,sizeof(sendbuf),0);

}

close(clientSocket);

return 0;

}
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
3699731
2011-04-09
知道答主
回答量:44
采纳率:0%
帮助的人:22.8万
展开全部
C 语言课本上面有这个程序的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式