打扰一下,如果之前已经发布了这个版本,我没有时间让这个代码正确,因为我需要明天将它发送给我的编程老师,但我无法看出什么是错的。它只是一个带限制数的汇总代码......但它确实存在错误。我试着在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
答案 0 :(得分:3)
在scanf中传递n
的地址
scanf("%d", &n);
作为旁注,您不需要从0
开始循环来计算总和
for(a=1; a <= n; ++a) //start from 1
做得不多,但保存了一次迭代。
此外,如果您不打算使用表达式的结果,请使用preincrement,因为它的开销略小于后增量。
答案 1 :(得分:0)
答案 2 :(得分:0)
scanf() 从标准输入流中读取。要存储已读取的内容,您需要提供正确的地址。指针持有地址。
&
是一元运算符,可帮助您获取操作数的地址。
&n
是一个有效的指针表达式,为您提供n
的地址,其中您需要存储n
的值
因此,请将scanf()
转为
scanf("%d",&n);