2017-12-03 22 views
0

에 내 말은 찾을 수이 코드를 작성하고 중간하지만 난 항상 이러한 오류를 가지고 :찾기 중앙값은 C

"71 경고 : '중간'캐스팅없이 정수에서 포인터를 만드는의 인수 하나를 전달하는"

과는 :

"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; 
} 

나는 당신의 helping.And에 대한 사전? 감사를 어떻게해야합니까?

+0

로 라인을 변경하여 문제를 해결할 수있다'sayilar [I]가''int'이고; 어쩌면 당신은 : 중간 값 (sayilar [i], i); -> 중간 값 (sayilar, i); –

+0

그것은 작동합니다. 도와 줘서 고맙습니다. –

답변

0

중간 값 함수는 배열과 정수를 사용하지만 main() 함수에서는 2 개의 int로 호출했습니다. sayilar [i]는 sayilar 배열의 i 번째 인덱스이므로 int입니다.

median(sayilar,i); 
+0

작동합니다. 도움을 주셔서 감사합니다. –

0
#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); 
}