zstx 发表于 2022-10-28 09:42

c语言练习 编译报错



/*从键盘上输入10个数,计算均值,然后输出均值以及其中大于均值的数。
思考:3.1题的方法(循环+变量)虽然可以计算均值,但是要输出大于均值的数,必须要将输入的多个数都保存下来,以便与均值进行比较。
因此本题使用循环+变量的方法无法实现输出大于均值的数。怎么办?如何将输入的多个数都保存下来?需要数组。
*/
#include <stdio.h>

int main(){
    int a[10];
    inti,sum=0;
    double aver;

    for(i=0;i<10;i++)
    {
      scanf("%d ", &a[i]);
      sum+=a[i];
    }
    aver=(double)sum/10;
    printf("平均值=%lf",&aver);

    for(i=0;i<10;i++){
      if(a[i]<aver)
      {
             printf("%d",&a[i]);
      }
    }

    return 0;
}

6.2.c:19:28: warning: format specifies type 'double' but the argument has type 'double *' [-Wformat]    printf("平均值=%lf",&aver);                   ~~~^~~~~6.2.c:24:26: warning: format specifies type 'int' but the argument has type 'int *' [-Wformat]             printf("%d",&a);                     ~~^~~~~2 warnings generated.

WuJ1n9 发表于 2022-10-28 11:07

把取地址符“&”删了

iceee_creammm 发表于 2022-10-28 11:11

打印变量时不需要用取地址符:lol

Albedo0 发表于 2022-10-28 12:07

printf函数直接传入变量值 不用取变量的地址 删去&即可

seawaycao 发表于 2022-10-28 12:12

楼上正解,
scanf("%d ", &a);//需要&
printf("平均值=%lf",aver);   //不需要&

PastYiHJ 发表于 2022-10-28 13:46

输入需要&,而输出不需要&

Agoni9oh 发表于 2022-10-28 16:16

这个&符不用啊,你输出是不需要的

A学习的小菜鸟 发表于 2022-10-30 10:11

输出不需要&,输入需要&,这个错误还是比较基础的

return2002 发表于 2022-11-2 16:18

1. 输出不用‘&’符
2. 题目是输出大于平均值的数,最后if里面应该是大于号
页: [1]
查看完整版本: c语言练习 编译报错