[英]compiler can not execute last two printf functions
#include<stdio.h>
int main()
{
int a[100], i, n, sum=0;
printf("How many number:");
scanf("%d", &n);
for ( i = 0; i < n; i++)
{
scanf("%d", a[i]);
sum = sum + a[i];
}
printf("Sum is: %d\n", sum);
printf("Average is %0.2f", (float)sum/n);
return 0;
}
我的代码有什么问题? 最后两个 printf 函数不能被编译器执行。 我的代码有问题吗?
scanf
函数需要传递一个指向要读取的数据的指针。
for ( i = 0; i < n; i++) { scanf("%d", a[i]); sum = sum + a[i]; }
a[i]
传递一个int
而不是指向int
的指针。 现在,由于指针只是数字,并且您已经为它提供了一个,因此您的代码将编译,但如果您在编译时打开警告,您的编译器应该警告您。
这样做肯定会产生未定义的行为。
相反,您需要传递a[1]
的地址:
scanf("%d", &a[i]);
您可能还希望检查scanf
的返回值,以确保它实际上正在读取您期望的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.