void do1()
{
int n,i,m
int a[10]={0}
printf("请输入要判断的数:")
scanf("%d",&n)
m=n
for(i=0i++)
{
a[i]=m%10
m/=10
if(m==0)
break
}
for(i=0a[i]!=0i++)
{
m+=a[i]*a[i]*a[i]
}
if(n==m)
printf("%d是水仙花数\n",n)
else
printf("%d不是水仙花数\n",n)
}
void do2()
{
int max,n,m,k
printf("请输入三个判断的数字:")
scanf("%d %d %d",&n,&m,&k)
max=n
if(max<m)
max=m
if(max<k)
max=k
printf("拍裂最大的数为:%d\n",max)
}
void do3()
{
int i,n,m=1
printf("请输入要求的数字:")
scanf("%d",&n)
for(i=1i<=ni++)
m*=i
printf("%d的阶乘是%d\n",n,m)
}
int menu()
{
int cn
printf("请输入指令:")
scanf("%d",&cn)
return cn
}
void main()
{
for()
{
switch(menu())
{
case 1:
do1()break
case 2:
do2()break
case 3:
do3()break
}
}
}
我给的这个还不是文件的形式,你需坦脊要的是文件的形式的话只要自己稍微改改就可以了,袭信闭如果不是非要文件的形式,那么完全符合,纯属手打,也同时锻炼了自己,求采纳
最滑前隐终结果——m=3
switch (a%3) → a为16,a%3为1 → 执行 case 1 → m初值为0,m++为1。注意,这里case1 并没有break,所以会继续向下执行完整个switch (a%3) → 执行switch (b%2) → b为21,b%2为1 → 执行default → m为1,m++为2 → 注悔游意这里依然会继续执行case0 → m++为3,break跳出switch (b%2) → switch (a%3)语句结束 → 执行printf,此信厅时m为3。
#include<stdio.h>void main() {
int a=16,b=21,m=0
switch(a%3) {
case 0:m++ break
case 1:m++
switch(b%2) {
default: m++
case 0:m++break
}
}
printf("m=%d\n",m)
}
运行结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)