标题:用c求中间数
只看楼主
小学一年吉
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-4-1
结帖率:0
已结贴  问题点数:20 回复次数:4 
用c求中间数
一个数列(可以有相等的元素,无序),求中间数。 如 1 4 6 6 7 8,则 6 为中间数,输出:6 6(两个 5);若没有中间数,如 1 2 3 4,则输出:-1(即无中间数)。
附上注释,小白可能看不懂
搜索更多相关主题的帖子: 中间数 元素 无序 输出 注释 
2018-04-01 11:35
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
得分:7 
何为中间数?值的中间数?还是位置的中间数?先学好语文.凡计算机能解决的问题,都是可以用数学公式表述的
2018-04-01 12:42
小学一年吉
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-4-1
得分:0 
回复 2楼 童生
中位数吧
2018-04-01 13:15
李晨经纪人
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:175
专家分:848
注 册:2018-2-14
得分:7 
程序代码:
#include<stdio.h>
int main(void)
{
    int i,j,k,temp,n=0,a[100];
    double temp2;
    char ch;
    for(i=0;i<100;++i)                     //输入数组,回车退出输入
    {
        scanf("%d%c",&a[i],&ch);
        if(ch=='\n')
            break;
    }
    for(j=0;j<i;++j)                       //从小到大排序
        for(k=j+1;k<=i;++k)
            if(a[k]<a[j])
            {
                temp=a[j];
                a[j]=a[k];
                a[k]=temp;
            }
    if((i+1)%2==0)                         //偶数个数组元素
        temp2=(a[(i-1)/2]+a[(i+1)/2])/2.0;
    else                                   //奇数个数组元素
        temp2=a[(i+1)/2];
    for(j=0;j<=i;++j)                      //在数组中找有没有和中值一样的元素
        if(a[j]==temp2)
        {
            printf("%d ",a[j]);
            n++;                          //计下找到的元素个数 并输出元素
        }
    if(!n)                                //没找到输出-1
        printf("-1");
    putchar(10);
    return 0;
}
2018-04-01 18:18
左左南木
Rank: 2
等 级:论坛游民
帖 子:9
专家分:23
注 册:2016-2-28
得分:7 
楼上说的有点凶不过很在理,程序就数学的抽象,每个函数都是数学公式,也算是一点想法吧

行百里者半九十,行千里者肯定是行百里中懂得学习的人
2018-04-01 22:44



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




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

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