对不起,如果这一步已经发表过了,我很少有时间来纠正这段代码,因为我明天需要把它发送给我的编程老师,但我看不出是什么问题。它只是一个带有限制数的summa代码……但它总是错的。我试着在C++中写同样的指令,它也能起作用。为什么??

#include <stdio.h>
int main()
{
    int a, n, suma;

    suma = 0;

    printf("Introduce un numero límite \n");

    scanf("%d", n);

    for(a=0; a <= n; a++)
    {
        suma=suma+a;
    }

    printf("La suma de todos los numeros es: %d", suma);
}

忽略打印…它们只是与用户交互:“我应该在哪里停止添加数字?总数是。一模一样。
如果你能帮助我,我将非常感谢你。我刚上一年级,我是C。。。
哦!所有编译警告:http://puu.sh/54Rnh.png

最佳答案

在scanf中传递n的地址

scanf("%d", &n);

作为补充说明,您不需要从0开始循环来计算总和
for(a=1; a <= n; ++a) //start from 1

不需要做太多,但可以节省一次迭代。
另外,如果不打算使用表达式的结果,请使用preincrement,因为它的开销比postcrement稍小。

关于c - Summa C程序崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19713153/

10-12 16:01