在C中找到中位数

时间:2017-12-03 23:39:32

标签: c arrays median

我写了这段代码来找到均值和中位数,但我总是把这些错误:

  

" 71警告:传递'中位数'的参数1在没有强制转换的情况下从整数生成指针"

  

" 14注意:预期' int *'但参数的类型为' 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;
}

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

2 个答案:

答案 0 :(得分:0)

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

您可以通过将行更改为

来解决此问题
# CODE FREEZES and DOESN'T RUN SECOND item IN EMAILS_LIST -- SEE output

        """
        <MailWorker(Thread-1, initial)>                                                                                                                                                        
        ********************                                                                                                                                                                   
        Thread-1                                                                                                                                                                               
        1  in queue size                                                                                                                                                                       
        0  out queue size                                                                                                                                                                      
        ********************                                                                                                                                                                   
        Contet =  rubbish_fQ94hEAi93@brighthouse.co.uk valid 250                                                                                                                               
        Domain is a Catch-All.  email: fred@brighthouse.co.uk host: brighthouse-co-uk.mail.protection.outlook.com                                                                              
        (['fred@brighthouse.co.uk', 'joe.fred@brighthouse.co.uk', 'joe@brighthouse.co.uk'], 'catchall', -99, 0)                                                                                
        <MailWorker(Thread-2, initial)>                                                                                                                                                        
        ********************                                                                                                                                                                   
        Thread-2                                                                                                                                                                               
        0  in queue size                                                                                                                                                                       
        0  out queue size                                                                                                                                                                      
        ********************    <---- code blocks here                                                                                                                                                                        

        """

答案 1 :(得分:0)

var xAxis = d3.svg.axis()
  .scale(x)
  .orient("bottom")
  .tickValues([]);