求1!+2!+.......+20!,用计算机C语言,享用双层循环,但是不知哪里不对,求大神指教!
#include<stdio.h>intmain(){doubles=0;inta=1,b=1,i=1;do{s=s+b;a=a+1;do{i=i+1;b=b*i;}wh...
#include<stdio.h>
int main()
{
double s=0;
int a=1,b=1,i=1;
do
{
s=s+b;
a=a+1;
do
{
i=i+1;
b=b*i;
}
while(i<=a);
}
while(a<=20);
printf("%e\n",s);
return 0;
}
另一个用for语句编的也不对
#include<stdio.h>
int main()
{
double s=0;
int a,b=1,i;
for(a=1;a<=20;a++)
{
s=s+b;
for(i=1;i<=a;i++)
{
b=1;
b=b*i;
}
}
printf("%e\n",s);
return 0;
} 展开
int main()
{
double s=0;
int a=1,b=1,i=1;
do
{
s=s+b;
a=a+1;
do
{
i=i+1;
b=b*i;
}
while(i<=a);
}
while(a<=20);
printf("%e\n",s);
return 0;
}
另一个用for语句编的也不对
#include<stdio.h>
int main()
{
double s=0;
int a,b=1,i;
for(a=1;a<=20;a++)
{
s=s+b;
for(i=1;i<=a;i++)
{
b=1;
b=b*i;
}
}
printf("%e\n",s);
return 0;
} 展开
2个回答
展开全部
我改的for循环的。题主你用了两个嵌套循环,首蠢判个for循环的a每增加1,第二个循环实际上带旦改循环了a次,所以你的行不通。你在第二个for循环内增加个printf函迟前数输出b的值就知道了。
#include<stdio.h>
int main()
{
double s=0;
int a=0,b=1,i;
for(i=1;i<=20;i++)//循环20次得出i!的值
{ b=b*i;
a++;
if(a<=20)//将20内i!相加
{
s=s+b;
}
}
printf("%e\n",s);
return 0;
}
#include<stdio.h>
int main()
{
double s=0;
int a=0,b=1,i;
for(i=1;i<=20;i++)//循环20次得出i!的值
{ b=b*i;
a++;
if(a<=20)//将20内i!相加
{
s=s+b;
}
}
printf("%e\n",s);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询