| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1250 人关注过本帖
标题:C语言程序运行结果不对
只看楼主 加入收藏
Allurelovess
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2017-6-2
结帖率:0
收藏
已结贴  问题点数:5 回复次数:4 
C语言程序运行结果不对
一个计算天数的程序,网上借鉴来的,运行结果总是不对!求助各位大神!(就是随意输入两个时间日期,计算两个日期之间相差的天数)
#include <stdio.h>
int sum(int y,int m,int d)
{
unsigned char x[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i,s=0;
for(i=1;i<y;i++)
if(i%4==0 && i%100!=0 || i%400==0)
s+=366;//闰年
else
s+=365;//平年

if(y%4==0 && y%100!=0 || y%400==0)
x[2]=29;

for(i=1;i<m;i++)
s+=x[i];//整月的天数
s+=d;//日的天数

return s;//返回总天数,相对公元1年
}

int main()
{
unsigned char y1,m1,d1,y2,m2,d2;
int s1,s2;

printf("输入第一个年 月 日:");
scanf("%d %d %d",&y1,&m1,&d1);
printf("输入第二个年 月 日:");
scanf("%d %d %d",&y2,&m2,&d2);

s1=sum(y1,m1,d1);
s2=sum(y2,m2,d2);

if (s1 > s2)
printf("相差天数:%ld\n",s1-s2);
else
printf("相差天数:%ld\n",s2-s1);

}


[此贴子已经被作者于2017-6-5 21:44编辑过]

搜索更多相关主题的帖子: 网上 C语言 return include 
2017-06-05 19:31
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:3 
unsigned char

都不简单说明一下问题,

早知做人那么辛苦!  当初不应该下凡
2017-06-05 21:10
Allurelovess
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2017-6-2
收藏
得分:0 
回复 2楼 炎天
就是随意输入两个时间日期,计算两个日期之间相差的天数
2017-06-05 21:45
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:3 
unsigned char x[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};


简单设置int就行 设置贴近长度 无非就是为了节省点空间吗  

DO IT YOURSELF !
2017-06-06 09:39
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
unsigned char y1,m1,d1,y2,m2,d2;  同理
scanf("%d %d %d",&y1,&m1,&d1);  %d之间去掉空格  下同
scanf("%d %d %d",&y2,&m2,&d2);

代码貌似没啥问题

DO IT YOURSELF !
2017-06-06 09:43
快速回复:C语言程序运行结果不对
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029303 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved