C语言为什么输出结果不对啊?

#include <stdio.h>
int main ()
{
int n=1;
int a;
printf("请输入班级人数(正整数):");
scanf("%d",&a);
do{
printf("%d ",&n);
n+=2;
}while(n<=a);

return 0;

}
比如输入9 运行结果是6487580 6487580 6487580 6487580 6487580
正确答案应该是1 3 5 7 9

printf("%d ", &n)输出的是n的地址不是值,把&去掉,改成

printf("%d ",n);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-12-17
程序中的循环语句中出了问题。其中的格式化输出语句是不带取地址符号的。请把循环语句改成:;do{printf("%d",n);n+=2;}while(n<=a);
第2个回答  2021-12-04
这是因为在你的代码中,printf函数的第二个参数多了一个&,把它去掉就可以了。
相似回答