为了账号安全,请及时绑定邮箱和手机立即绑定

在Dev-C++中写的,用printf函数输出格式时,后面多自动多些数字出来。但编译后运行结果是正确的。

题目:请使用switch语句和if...else语句,计算2008年8月8日这一天,是该年中的第几天。

受网友启发,自己用数组写了一个更通用的程序。代码如下:

#include<stdio.h>

int main(void)
{
	int year, month, day, sum=0, i;
	
	printf("Enter year: %d", year);
	scanf("%d", &year);
	printf("Enter month: %d", month);
	scanf("%d", &month);
	printf("Enter day: %d", day);
	scanf("%d", &day);
	
	int a[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	
	if(year/4 == 0 && year/100 != 0){
		a[1] = 29;
	}
	
	for(i=0;  i < month-1; i++)
	{
		sum += a[i];
	}
	
	sum += day;
	
	printf("%d年%d月%d号是该年的第%d天", year, month, day, sum);
	
	return 0;
}

在Dev-C++中写的,用printf函数输出格式时,后面多自动多些数字出来(见截图中的窗口)。但编译后运行结果是正确的。

正在回答

1 回答

if(year/4 == 0 && year/100 != 0){
    a[1] = 29;
}

上面是你写的代码,明显把求余 % 用成 / 了


0 回复 有任何疑惑可以回复我~
#1

慕粉1034431922 提问者

非常感谢!
2017-02-20 回复 有任何疑惑可以回复我~
#2

慕粉1034431922 提问者

好多了,原来多一串数字,现在运行时,Enter year: 后面会自动多一个 0 ,算是进步吧。。。
2017-02-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

在Dev-C++中写的,用printf函数输出格式时,后面多自动多些数字出来。但编译后运行结果是正确的。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信