#include <stdio.h>
#include<string.h>
#include<math.h>
int x;
void fun1() //由于没有规定要判定的水仙花的位数,因此要判定输入的数的位数,该段码最多能判断5位的水仙花
{
int i,n,m[5];
double sum1=0,sum2=0;
char s[5];
printf("请输入要判定的数:");
scanf("%s",s);
n=strlen(s);
for(i=0;i<n;i++)
m[i]=s[i]-48;
for(i=0;i<n;i++)
{
sum1=sum1+pow(10,n-1-i)*m[i];
sum2=sum2+m[i]*m[i]*m[i];
}
if(sum1==sum2)
printf("该数是水仙花数。\n");
else
printf("该数不是水仙花数。\n");
}
void fun2()
{
int a,b,c,max;
printf("请输入三个整数:\n");
scanf("%d%d%d",&a,&b,&c);
if(a>=b) max=a;
if(a<=b)max=b;
if(max<=c)max=c;
printf("三个数中最大的是:%d\n",max);
}
void fun3()
{
char s[10];
int i,n;
printf("请输入要判定的数(整数):");
scanf("%s",s);
n=strlen(s);
printf("该数各位上数字依次是:");
for(i=0;i<n;i++)
printf("%c ",s[i]);
printf("\n");
}
void fun4()
{
char s[200];
int n,i;
printf("请输入大写字母:");
scanf("%s",s);
n=strlen(s);
for(i=0;i<n;i++)
{
if(s[i]>='A'&&s[i]<='Z')
s[i]=s[i]+32;
}
printf("转换后的字母:");
for(i=0;i<n;i++)
printf("%c",s[i]);
printf("\n");
}
void fun5()
{
void fun6();
printf("命令1:判断一个数是否为水仙花数\n");
printf("命令2:求三个数的最大值\n");
printf("命令3:判断一个数的各个位上数字\n");
printf("命令4:大写字母转换成小写字母\n");
printf("请输入要执行的命令:");
scanf("%d",&x);
if(1==x) fun1();
else if(2==x) fun2();
else if(3==x) fun3();
else if(4==x) fun4();
else fun6();
}
void fun6()
{
printf("命令输入错误 请重新输入.\n");
fun5();
}
void main()
{
fun5(); //为防止输入命令错误,所以采用循环输入(只有在输入错误时才会循环)
}
温馨提示:答案为网友推荐,仅供参考