闰年测试

一、程序要求

  对于输入的年份,判断是否是闰年。

  是闰年则输出“该年份为闰年”,不是闰年则输出“该年份不是润年”。

  对于非法的输入,返回错误信息。

二、测试用例

序号  测试用例 期望输出 实际输出
1 0 该年份为闰年 该年份为闰年
2 1999 该年份不是润年 该年份不是润年
3 2000 该年份为闰年 该年份为闰年
4 2008 该年份为闰年 该年份为闰年

三、关键代码

#include <cstdio>
#include <cstdlib>

int main()
{
  int year;
  while(~scanf("%d",&year))
  {
    printf(((year % 4 == 0 && year % 100 != 0) ||year%400==0) ? "该年份是闰年 " : "该年份不是闰年 ");
    system("pause");
  }
  return 0;
}

四、测试结果

从结果中可以看出,对于非法字符,程序没有做任何处理,因此造成了输出的错误。因此,下面将使用对程序进行改进。

五、非法输入检测的改进

  对于字符串转换:

  在C标准库里面,可以使用atoi函数。

  在C++标准库里面,使用stringstream函数。

  在java或者c#中,都可以使用parse函数。

  这里以java中的parse函数为例:

public static boolean tryParse(String str){
  try{
    Integer.parseInt(str);
    return true;
  }
  catch(NumberFormatException e){
    e.printStackTrice();
    return false;
  ]
}

  用户输入的数字正确,将会返回true,输入非法字符,将会返回false,并且抛出NumberFormatException异常.

这将达到判断非法输入的功能。

原文地址:https://www.cnblogs.com/byzantine/p/4397827.html