标题:新手求助,请问这段程序错在哪里?谢谢!
只看楼主
师傅我来了
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-12-23
结帖率:50%
已结贴  问题点数:10 回复次数:4 
新手求助,请问这段程序错在哪里?谢谢!
#include<stdio.h>
void array_input(double a[], int n);
void bubble_sort(double a[], int n);
double median(double a[], int n);
void main()
{
   double a[8];
   printf("请输入double型数组的8个元素:\n");
   array_input(a, 8);
    bubble_sort(a,8);
}
void array_input(double a[], int n)
{
    for(n=0;n<8;n++)
         scanf("%d",&a[n]);
}
void bubble_sort(double a[], int n)
{
    int j,i;
    for(j=0;j<7;j++)
    {
      for(n=0;n<7-j;n++)
       {
           if(a[n]>a[n+1])
           {i=a[n];a[n]=a[n+1];a[n+1]=i;}
       }
    }
    median(a,8);
    printf("数组的各元素的中位数:%f",median(a,8));
}
double median(double a[], int n){
    float b;
    int c=a[8];
    if(c%2==0)
      return b=c/2+c/2-1;
    else
       return b=(c+1)/2;
}
搜索更多相关主题的帖子: include double median 元素 
2015-12-23 21:28
kevin_c
Rank: 1
等 级:新手上路
帖 子:28
专家分:5
注 册:2015-10-15
得分:5 
#include<stdio.h>

void array_input(double a[], int n);
void bubble_sort(double a[], int n);
double median(double a[], int n);

void main()
{
   double a[8];
   int i;
   printf("请输入double型数组的8个元素:\n");
   array_input(a, 8);
    bubble_sort(a,8);
    //print
    for(i = 0;i<8;i++){
        printf("%.2f ",a[i]);
    }
    printf("\n");
}

void array_input(double a[], int n)
{
    for(n=0;n<8;n++)
         scanf("%lf",&a[n]);
}

void bubble_sort(double a[], int n)
{
    int j,i;
    for(j=0;j<7;j++)
    {
      for(n=0;n<7-j;n++)
       {
           if(a[n]>a[n+1])
           {i=a[n];a[n]=a[n+1];a[n+1]=i;}
       }
    }
   
    printf("数组的各元素的中位数:%.1f\n",median(a,8));

}
double median(double a[], int n){
    if(n%2==0){
        return (a[n/2-1]+a[(n/2)])/2;
    }
    else{
        return a[(n-1)/2];
    }
}

我帮你改了一下,自己对比一下
2015-12-23 22:52
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:5 
void array_input(double a[], int n)
{
    for(n=0;n<8;n++)
         scanf("%d",&a[n]);  //%d是整形数格式
}
double median(double a[], int n){
    float b;
    int c=a[8];//最大下标是7,从题意上可知是中间的数,因此我觉得应该是c=n/2,return a[c]
    if(c%2==0)
      return b=c/2+c/2-1;
    else
       return b=(c+1)/2;
}

能编个毛线衣吗?
2015-12-23 22:54
师傅我来了
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-12-23
得分:0 
回复 2楼 kevin_c
谢谢!
2015-12-24 11:33
师傅我来了
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-12-23
得分:0 
回复 3楼 wmf2014
谢谢!
2015-12-24 11:34



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-460507-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051429 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved