用c语言编写一个程序菜单:1、判断一个数是否为水仙花数;2.求三个数的最大值 3.判断一个数的各个位上数字

4 。将输入的n个大写字母转换成小写字母(该菜单的意思就是输入1,执行1的命令;输入2,则执行2,以此类推;4个要都能执行。)

#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(); //为防止输入命令错误,所以采用循环输入(只有在输入错误时才会循环)
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-12
你上理的吗?为什么都是这种程序追问

= =被你发现了。。。

追答

大一的

追问

是的啊。。。坑爹的c语言啊

追答

C语言还好啊,你是学什么的啊

第2个回答  2012-04-03
写一个程序吗?追问

恩,是的。最好用简单基础的语法。。我们刚学c语言啊