VC++高手来,在线

来源:百度知道 编辑:UC知道 时间:2024/05/02 13:18:23
#include <stdio.h>
void main()
{
int z;
int num;
char ans='y';
do{
z=1;
printf("\n 请输入一个大于零的正整数num : ");
scanf("%d",&num);

while(num>=1)
{

z=z*num;
num--;
}
printf("\n 阶乘结果=%d\n",z);

printf("是否继续(y/n):");
fflush(stdin);
ans=getchar();
}while(ans=='y' || ans=='Y');
}

有什么方法能让 阶乘结果表达为 比如你输入5是会显示这样的
(结果=1*2*3*4*5)
continue,for 这些还没有学到,不知道怎么办哦

这个程序如你要求 运行的很好 呵呵

#include <stdio.h>
void main()
{
int z;
int num;
char ans='y';
do{
z=1;
printf("\n 请输入一个大于零的正整数num : ");
scanf("%d",&num);
int N=num;
while(num>=1)
{
z=z*num;
num--;
}
printf("\n%d=",z);
for(int i=1;i<=N;i++)
printf("%d*",i);
printf("\b \n");

printf("是否继续(y/n):");
fflush(stdin);
ans=getchar();
}while(ans=='y' || ans=='Y');
}

if(num < 1)
continue;
printf("\n 阶乘结果=");
while(num>=1)
{
z=z*num;
printf("%d*",num);
num--;
}
printf("1\n");

把你的while改成这样吧,不过这是到的5*4*3*2*1,你自己想一下变成正过来的吧~

if(num < 1) continue; printf("\n 阶乘结果="); while(num>=1) { z=z*num; printf("%d*",n