题目描述
输出如下菜单:
1 计算n!
2 输出素数
3 判定闰年
根据输入(1、2、3),接受数据输入,计算n!或输出某范围内的所有素数或判定给定年是否闰年,并输出计算结果。
要求:用switch实现。
测试次数T
AC代码
#include<stdio.h>
int main()
{
int t; // 存储数据组数
int n; // 存储输入的数字
scanf("%d", &t); // 输入数据组数
int a, b; // 辅助变量
while (t--)
{
scanf("%d", &a); // 输入选择的操作类型
switch (a)
{
case 1:
{
int i; // 存储计算阶乘的数字
long long x = 1; // 存储计算结果
scanf("%d", &i); // 输入要计算阶乘的数字
do {
if (i <= 0)
break;
x *= i;
} while (i--);
printf("1 计算n!\n2 输出素数\n3 判定闰年\n%lld\n\n", x);
break;
}
case 2:
{
int x, y; // 存储素数范围的起始值和结束值
scanf("%d%d", &x, &y); // 输入素数范围的起始值和结束值
printf("1 计算n!\n2 输出素数\n3 判定闰年\n");
if (x <= 1)
x = 2;
if (y <= 1)
y = 2;
while (x <= y)
{
if (x == 2)
printf("2 ");
n = 2;
while (x % n != 0)
{
n++;
if (n == x)
printf("%d ", x);
}
x++;
}
printf("\n\n");
break;
}
case 3:
{
int x; // 存储判断的年份
scanf("%d", &x); // 输入要判断的年份
if ((x % 4 == 0 && x % 100 != 0) || x % 400 == 0)
printf("1 计算n!\n2 输出素数\n3 判定闰年\n%d是闰年\n\n", x);
else
printf("1 计算n!\n2 输出素数\n3 判定闰年\n%d非闰年\n\n", x);
break;
}
default:
printf("1 计算n!\n2 输出素数\n3 判定闰年\n");
printf("INPUT ERROR!\n\n");
}
}
return 0;
}
(by 归忆)