为什么输出结果总是-42

来源:百度知道 编辑:UC知道 时间:2024/05/16 03:05:14
#include <stdio.h>
main()
{
int a,sum=0;
printf("give a number\n");
scanf("%d",&a);
if(a<=10000&&a>=1)
{
while(a!=0)
{sum=sum+a%10;
a=a/10;
}
printf("sum=%d",&sum);
}
else
printf("error!");
getch();
}

printf("sum=%d",&sum); 把&去掉。

printf("sum=%d",&sum); //你这句话的意思是 把变量sum 的地址按%d格式输出来。。你的电脑怎么回输出-42呢,我在我电脑上测试了一下,明明就是一个地址嘛。。。把&去掉就可以了,我试过了,正确。。。你的程序的功能就是把一个数(在1-10000之间)的所以位上的数字相加嘛。。。。

printf("sum=%d",&sum); 这句语句不需要&这个符号!!
#include <stdio.h>
void main()
{
int a,sum=0;
printf("give a number\n");
scanf("%d",&a);
if(a<=10000&&a>=1)
{
while(a!=0)
{sum=sum+a%10;
a=a/10;
}
printf("sum=%d\n",sum);
}
else
printf("error!");
getchar();
}

你输入的什么数啊?

printf("sum=%d",&sum); 把&去掉。

printf("sum=%d",&sum);去掉&

恩 只要去个& 就可以了