gpt4 book ai didi

c - 在 C 中寻找中位数

转载 作者:太空宇宙 更新时间:2023-11-04 03:19:44 29 4
gpt4 key购买 nike

我写这段代码是为了求均值和中位数,但我总是犯这些错误:

"71 warning: passing argument 1 of 'median' makes pointer from integer without a cast"

和:

"14 note: expected 'int *' but argument is of type 'int'".

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

float mean(float x,int y)
{
float toplam = x;
int adet=y;

return toplam/adet;

}

int median(int AlinanSayilar[200],int adet)
{
int kacinci,kacinci2;
int medyan=0;

if(adet%2==1)
{
kacinci=(adet/2)-1;
kacinci2=kacinci+1;
medyan=(AlinanSayilar[kacinci]+AlinanSayilar[kacinci2])/2;
}
else
{
kacinci=(adet/2)-0.5;
medyan=AlinanSayilar[kacinci];
}

printf("%d",medyan);

return 0;
}

int main()
{
int sayilar[200];
int i,k,j,holder;
float sum=0;

printf("Welcome the calculator...\n\tThis calculator finds mean,median and
mode of your numbers...\n");
printf("\t\tNOTE:Please enter only integer numbers...\n\n");

for(i=0;true;i++)
{
printf("Please enter a number(press -1 for exit): ");
scanf("%d",&sayilar[i]);
printf("\n");

if(sayilar[i]==-1){
break;
}
sum +=sayilar[i];
}

for(k=0;k<i-1;k++)
{
for(j=k+1;j<i;j++)
{
if(sayilar[k]>sayilar[j])
{
holder=sayilar[k];
sayilar[k]=sayilar[j];
sayilar[j]=holder;
}
}
}

printf("Mean:%.2f",mean(sum,i));
median(sayilar[i],i);

system("pause");
return 0;
}

我该怎么办?在此先感谢您的帮助。如果您知道查找模式(最重复的数字),您可以编写它的代码吗?

最佳答案

您的 median 函数接受一个数组和一个整数,但在您的 main() 函数中您使用两个整数调用它。 sayilar[i] 是 sayilar 数组的第 i 个索引,所以它是一个 int。

您可以通过将行更改为来修复它

median(sayilar,i);

关于c - 在 C 中寻找中位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47624565/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com