scanf 忽略了函数的返回值,可能是函数用错或者没有考虑到返回值异常的情况
六月陌 2019-08-22 06:49:49 #include <stdio.h>
int main (){
int n;
while(~scanf("%d",&n))
{
int a[n]={0},sum=0;
float ave;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum=sum+a[i];
}
ave=(float)sum/n;
for(int j=0;j<n;j++)
{
if(a[j]<ave) printf("%d ",a[j]);
}
printf("\n");
}
return 0;
}
Main.c: In function ‘main’:
Main.c:6:3: error: variable-sized object may not be initialized
int a[n]={0},sum=0;
^
Main.c:6:13: warning: excess elements in array initializer
int a[n]={0},sum=0;
^
Main.c:6:13: note: (near initialization for ‘a’)
Main.c:10:4: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&a[i]);
^
辅助解释:
warning: ignoring return value of:警告:忽略了函数的返回值,可能是函数用错或者没有考虑到返回值异常的情况
我并没有用scanf的返回值啊。就是正常读取数据,为什么报错