C编程为什么我的代码不能工作?
因此,我必须为C编程为什么我的代码不能工作?,c,C,因此,我必须为S=1+1*2+1*2*3+1*2*3*4+…n编写一个代码其中n由用户给定。 我写了这段代码 #include <stdio.h> int main (void) { int i, n, j, s, p; printf("Put a number:"); scanf("%d",&n); s = 0; for (i = 1; i <= n; i++); { p=1; }
S=1+1*2+1*2*3+1*2*3*4+…n编写一个代码代码>其中n由用户给定。
我写了这段代码
#include <stdio.h>
int main (void)
{
int i, n, j, s, p;
printf("Put a number:");
scanf("%d",&n);
s = 0;
for (i = 1; i <= n; i++);
{
p=1;
}
for (j=1;j<=i;j++)
{
s=s+(p*i);
}
printf("\n Sum=%d",s);
return 0;
}
#包括
内部主(空)
{
int i,n,j,s,p;
printf(“输入一个数字:”);
scanf(“%d”和“&n”);
s=0;
for(i=1;i在第一个“for”结束语句后;,因此这是一个空循环。另外,第二个循环应该在第一个循环内,而不是。缩进代码不仅仅是装饰性的,它可以帮助澄清这样的代码。我建议您编写一个计算阶乘(n)的函数首先,然后在循环中使用该函数
这样更容易理解
int fact( int n) {
// do your factorial compututation
}
int n = 0, sum = 0;
scanf("%d", &n);
for( int i = 0; i<n; i++)
{
sum += fact(i);
}
我认为基本上它需要两个循环,一个用于添加阶乘值,一个用于计算阶乘的内部循环
#include <stdio.h>
int main (){
int i,n,j,sum,factorial;
printf("Put a number:");
scanf("%d",&n);
sum = 0;
for (i=1;i<=n;i++){
factorial = 1;
for (j=2;j<=i;j++){
factorial *= j;
}
sum += factorial;
}
printf("\nSum=%d\n",sum);
return 0;
}
#包括
int main(){
int i,n,j,和,阶乘;
printf(“输入一个数字:”);
scanf(“%d”和“&n”);
总和=0;
对于(i=1;i这是这个程序背后的主要逻辑:使用递归函数来计算n的阶乘,并在for循环中使用它来计算1和n之间所有值的总和:
#include<stdio.h>
int factorial(int);
int main(void)
{
int i,n,s;
printf("Put a number:");
scanf("%d",&n);
s=0;
for(i=1;i<=n;i++)
{
s+=factorial(i);
}
printf("\n Sum=%d",s);
}
int factorial(int x)
{
if(x==1)
return 1;
return x*factorial(x-1);
}
#包括
整数阶乘(int);
内部主(空)
{
int i,n,s;
printf(“输入一个数字:”);
scanf(“%d”和“&n”);
s=0;
对于(i=1;i基本上一切都错了:-)
#包括
整数阶乘(整数n)
{
int i,res=1;
对于(i=2;i这是您需要的
int f = 1;
int s = 0;
for (i = 1;i <= n;i++)
{
f *= i;
s += f;
}
在下面的例子中,i总是n+1
和p
总是1,所以你有效地做了n次i+i…
for (j=1;j<=i;j++)
{
s=s+(p*i);
}
for(j=1;jfor(i=1;i)请正确缩进您的代码。for(i=1;iI)删除了它,但问题是逻辑上的,而不是语法上的,而且您应该始终测试scanf()
返回转换输入数的预期值,在本例中为1
。因此,我复制了您的代码,在gcc中编译,调用time a.out
并输入999999,去卫生间,回来,去喝一杯,回来,然后按CTRL+C,结果仍在计算中,然后再次调用/a.out代码>现在输入'Put a number:d Sum=-125961703`:)(只是开玩笑,代码适合正常输入,逻辑很好)太糟糕了,他给出了阶乘代码..我想这是家庭作业的主题..你的程序缩进非常难看:-)@Jens好的,格式化了。但是我必须手动为每一行格式化。你知道如何在文本编辑器中一次自动格式化整个程序吗?我只知道“代码示例”选项,该选项仅将所选文本突出显示为代码。如何一次格式化整个内容?谢谢。我建议GNU indent在您的计算机上缩进代码,然后粘贴。编辑窗格对特定编程语言没有缩进功能。@Jens GNU indent是一个可供windows下载的程序?@Jens我以为您会我会自己编辑我的答案,因为你在这方面有足够的声誉。或者你需要更多来编辑别人的答案?
for (i=1;i<=n;i++);
{
p=1;
}
#include <stdio.h>
int factorial(int n)
{
int i, res = 1;
for(i = 2; i <= n; i++)
res *= i;
return res;
}
int main(void)
{
int i, n, s = 0;
printf("Put a number:");
scanf("%d", &n);
s = 0;
for (i = 1; i <= n; i++)
s += factorial(i);
printf("\n Sum=%d\n", s);
return 0;
}
int f = 1;
int s = 0;
for (i = 1;i <= n;i++)
{
f *= i;
s += f;
}
{
p=1;
}
for (j=1;j<=i;j++)
{
s=s+(p*i);
}