题目描述
输出如下菜单:
1 计算n!
2 输出素数
3 判定闰年
根据输入(1、2、3),接受数据输入,计算n!或输出某范围内的所有素数或判定给定年是否闰年,并输出计算结果。
要求:用switch实现。
输入
测试次数t
每组测试数据格式如下:
选项(1,2,3或其它),后跟需要的数据。
如: 输入1 10,表示计算n!。
输入2 10 100,表示输出10到100之间的所有素数。
输入3 2000,表示判定2000是否闰年。
输出
对每组测试数据,首先输出菜单。
根据输入选项,输出相应计算结果。如果选项非1到3,输出INPUT ERROR!。
n!—输出计算结果。
闰年—输出“2000是闰年”,“2017非闰年”等信息。
输入样例1
2
3 2000
2 10 20
输出样例1
2 输出素数
3 判定闰年
2000是闰年
1 计算n!
2 输出素数
3 判定闰年
11 13 17 19
#include<stdio.h>
int main()
{
int t,i,n,a,b,x,year,sum,none;
scanf("%d",&t);
for(int i=0;i<t;i++)
{
sum=1;
none=0;
scanf("%d",&n);
if(n==1)
{
scanf("%d",&x);
sum=x;
printf("1 计算n!\n2 输出素数\n3 判定闰年\n");
}
else if(n==2)
{
scanf("%d%d",&a,&b);
printf("1 计算n!\n2 输出素数\n3 判定闰年\n");
}
else if(n==3)
{
scanf("%d",&year);
printf("1 计算n!\n2 输出素数\n3 判定闰年\n");
}
else
{
printf("1 计算n!\n2 输出素数\n3 判定闰年\n");
printf("INPUT ERROR!\n");
}
if(n==1)
{
sum=1;
for(int j=x;j>0;j--)
{
sum=sum*j;
}
printf("%d\n",sum);
}
else if(n==2)
{
for(int x0=a;x0<=b;x0++)
{
none=0;
for(int k=2;k<x0;k++)
{
if(x0%k==0)
{
none++;
}
}
if(none==0)
{
printf("%d ",x0);
}
}
puts("");
}
else if(n==3)
{
if(year%400==0)
{
printf("%d是闰年\n",year);
}
else
{
printf("%d非闰年\n",year);
}
}
puts("");
}
return 0;
}