在C中寻找中位数
我写这段代码是为了找出均值和中位数,但我总是会犯以下错误: “71警告:传递'median'的参数1将使指针从整数变为无强制转换” 以及: “14注意:应为'int*',但参数的类型为'int'”在C中寻找中位数,c,arrays,median,C,Arrays,Median,我写这段代码是为了找出均值和中位数,但我总是会犯以下错误: “71警告:传递'median'的参数1将使指针从整数变为无强制转换” 以及: “14注意:应为'int*',但参数的类型为'int'” #包括 #包括 #包括 浮动平均值(浮动x,整数y) { 浮顶高度=x; int adet=y; 返回toplam/adet; } 中间值(中间值[200],中间值) { 内卡辛奇,卡辛奇2; int-medyan=0; 如果(adet%2==1) { 卡辛奇=(adet/2)-1; 卡辛奇2=卡辛奇
#包括
#包括
#包括
浮动平均值(浮动x,整数y)
{
浮顶高度=x;
int adet=y;
返回toplam/adet;
}
中间值(中间值[200],中间值)
{
内卡辛奇,卡辛奇2;
int-medyan=0;
如果(adet%2==1)
{
卡辛奇=(adet/2)-1;
卡辛奇2=卡辛奇+1;
枸杞子=(阿林纳沙依拉[kacinci]+阿林纳沙依拉[kacinci2])/2;
}
其他的
{
卡辛奇=(adet/2)-0.5;
枸杞子=AlinanSayilar[kacinci];
}
printf(“%d”,medyan);
返回0;
}
int main()
{
int sayilar[200];
int i,k,j,holder;
浮点数和=0;
printf(“欢迎使用计算器…\n\t此计算器查找平均值、中值和
您的号码模式…\n“;
printf(“\t\t注意:请只输入整数…\n\n”);
for(i=0;true;i++)
{
printf(“请输入一个数字(按-1退出):”;
scanf(“%d”&sayilar[i]);
printf(“\n”);
if(sayilar[i]=-1){
打破
}
sum+=sayilar[i];
}
对于(k=0;k你的中值函数取一个数组和一个整数,但是在main()函数中你用两个整数调用它。sayilar[i]是sayilar数组的第i个索引,所以它是一个整数
您可以通过将行更改为
median(sayilar,i);
#包括
#包括
int b[100],m,md,i,n1,md1,md2,mdt,sum,n;
整数平均值(整数n,整数a[]
{
因为(i=0;isayilar[i]
是一个int
;也许你的意思是:median(sayilar[i],i);
-->median(sayilar,i);
很有效。谢谢你的帮助。
median(sayilar,i);
#include <stdio.h>
#include <stdlib.h>
int b[100],m,md,i,n1,md1,md2,mdt,sum,n;
int mean(int n, int a[])
{
for(i=0;i<n;i++)
{
sum+=a[i];
}
m=sum/n;
return m;
}
int median(int n,int a[])
{
if(n%2==0)
{
md1=(n/2)-1;
md2=(n/2);
mdt=(a[md1]+a[md2])/2;
return mdt;
}
else
{
md=(n/2)-1;
return a[md];
}
}
main()
{
int rmean,rmedian;
n1=10;//declaring the number of integers
for(i=0;i<n1;i++)
{
b[i]=i+1;// assigning the integer values of the array in which mean and //median is to be found
}
rmean=mean(n1,b);
rmedian=median(n1,b);
printf("the mean :%d",rmean);
printf("the median: %d",rmedian);
}