壳970527 发表于 2022-11-10 00:50:17

设计一个求平均值以及大于小于平均值数字的个数 一直报错

#include <stdio.h>

double largesmall(int *data, int size, int *large, int *small);
// 関数largesmall()のプロトタイプ宣言
// 平均値以上のデータの個数,平均値より小さいデータの個数をlarge,smallに求める
// 平均値を返す

int main(void) {
int data[] = {6, 12, 23, 4, 9, 7, 5, 10, 8, 1};// 例示用整数データ
//int data[] = {15, 1, 2, -18, 6, 4, -17, 0, 3, 9};// 提出用整数データ
int size = 10;// 整数型配列のデータの個数
double ave;   // 平均値を格納する
int large = 0;      // 平均値以上のデータの個数を格納する
int small = 0;      // 平均値より小さいデータの個数を格納する

ave = largesmall(data, size, *large, *small);// 関数largesmall()を呼び出す
printf("平均値:%f \n", ave);
printf("平均値以上のデータの個数:%d \n",large);
printf("平均値より小さいデータの個数%d \n", small);

return 0;
}

double largesmall(int *date, int size, int *large, int *small) {
double temp;
int i;

temp = date+date+date+date+date+date+date+date+date+date;
temp = temp/10;
for (i=0;i<size;i++)
{
    if (date>temp)
    {
      large = large + 1;
    }
    else if (date<temp)
    {
      small = small + 1;
    }
    else{
      continue;
    }
}
return temp;


}


large是大于平均值数字的个数
small是小于平均值数字的个数
ave是平均值的数值
不知道为什么一直报错,ave = largesmall(data, size, *large, *small);// 関数largesmall()を呼び出す
这一行的内容一直出现报错,我改了很多次弄了一个多小时都没搞明白= =求求大佬帮忙纠错下,拜托了

jhq999 发表于 2022-11-10 10:33:19

先把取地址&和解引用*整明白了

两手空空儿 发表于 2022-11-10 12:03:06

本帖最后由 两手空空儿 于 2022-11-10 12:04 编辑

函数声明是这样的 double largesmall(int *data, int size, int *large, int *small);
调用的时候就要按照这个格式 int 的给数,int*的给地址如下
ave = largesmall(data, size, &large, &small);

再去学习一下小甲鱼老师关于指针的那些章节吧
页: [1]
查看完整版本: 设计一个求平均值以及大于小于平均值数字的个数 一直报错