C语言闰年判断代码错误与改进

本文分析了一段用于判断2001年到2101年之间闰年个数的C语言代码,并针对其中存在的错误和可以改进的地方进行了说明。

原始代码:

#include <stdio.h>
int main()
{
	int i; int count=0;
	scanf('%d', &i);
	for (i=2001;i<2101;i++) 
	{
		if ((i%4==0 && i%100!=0) || i%400==0)
		{
			count++; 		
		}
		printf('%d', &count);
	
	
	
	return 0;
}

错误与改进:

  1. 缺少右大括号: 原始代码中 for 循环缺少一个右大括号 } 来结束循环体。
  2. printf函数参数错误:printf 函数中,应该使用 %d 格式化字符串来打印整数变量 count 的值,而不是使用 &count,后者会打印 count 的内存地址。
  3. 缺少用户提示:scanf 函数中,没有提示用户输入任何内容。为了提高用户体验,应该添加一个字符串来提示用户输入年份。
  4. 缺少输入校验:scanf 函数中,对用户输入的 i 没有进行错误检查。如果用户输入了无效字符,程序可能会出现异常行为。

修改后的代码:

#include <stdio.h>

int main()
{
	int i;
	int count = 0;

	printf('请输入一个年份:');
	if (scanf('%d', &i) != 1) {
		printf('输入错误!\n');
		return 1;
	}

	for (i = 2001; i < 2101; i++)
	{
		if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
		{
			count++; 		
		}
	}

	printf('符合条件的年份个数:%d\n', count);

	return 0;
}

改进说明:

  • 增加了 scanf 的返回值检查,确保用户输入的是数字
  • 增加了错误提示信息,提升用户体验
  • 添加了注释,使代码更易读

修改后的代码修复了原始代码中的错误,并进行了一些改进,使其更加健壮和易于理解。

C语言闰年判断代码错误与改进

原文地址: https://www.cveoy.top/t/topic/mUh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录