| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2448 人关注过本帖
标题:pta上有个测试点通不过,这个代码真的写了好长时间,求求大佬帮看看到底是哪 ...
只看楼主 加入收藏
魂之子
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2019-12-25
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:4 
pta上有个测试点通不过,这个代码真的写了好长时间,求求大佬帮看看到底是哪里出错了


图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
程序代码:
#include<stdio.h>
void bubbleSort(float arr[], int n)
{
    int i, j, tmp;
    for(i = 0; i < n - 1; i++)
    {
        for(j = 1; j < n; j++)
        {
            if(arr[j] < arr[j - 1])
            {
                tmp = arr[j];
                arr[j] = arr[j - 1];
                arr[j - 1] = tmp;
            }
        }
    }
}

int main(){
    int n,k,m;
    scanf("%d %d %d",&n,&k,&m);
    float stu[10001];
    int i;
    float temp[101];
    float sum=0;
    
    int j;
    for(j=0; j<n; j++){
        sum = 0;//&Ccedil;§&Iacute;ò&frac14;&Ccedil;×&Aring;&Atilde;&iquest;&Acirc;&Ouml;&Ntilde;&shy;&raquo;·°&Ntilde;sum&sup1;é&Aacute;&atilde;&iexcl;&pound;&iexcl;&pound;&AElig;&oslash;&Euml;&Agrave;&Icirc;&Ograve;&Aacute;&Euml;&micro;÷&Ecirc;&Ocirc;&ordm;&Atilde;&frac34;&Atilde; 
        for(i=0; i<k; i++){
            scanf("%f",&temp[i]);//&cedil;&atilde;°&euml;&Igrave;ì&cedil;&ntilde;&Ecirc;&frac12;&iquest;&Oslash;&Ouml;&AElig;&Iacute;ü&cedil;&Auml;&Aacute;&Euml;&iexcl;&pound;&iexcl;&pound; 
            //sum+=temp[i];
        }
        bubbleSort(temp,k);
        int i2;
        for(i2=1; i2<k-1; i2++){
            sum+=temp[i2];
        }
        stu[j]=sum/(k-2);
    }
    bubbleSort(stu,n);
    for(i=n-m; i<n; i++){//&Iuml;&euml;&acute;&Oacute;×&icirc;&ordm;ó&Ecirc;&auml;&sup3;&ouml;&frac14;&cedil;&cedil;&ouml;&Ecirc;&yacute;&frac34;&Iacute;&Ouml;±&frac12;&Oacute;&frac14;&otilde;&frac14;&cedil;&pound;&not;&sup2;&raquo;&Oacute;&Atilde;&Ocirc;&Ugrave;&frac14;&otilde;&Ograve;&raquo;&iexcl;&pound; 
        printf("%.3f",stu[i]);
        if(i!=n-1){
            printf(" ");
        }
    }
    return 0;
}
搜索更多相关主题的帖子: sum int for float temp 
2020-05-06 00:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:10 
首先要给出链接,https://

然后我编译 你的代码,报错:
tmp = arr[j];
warning C4244: “=”: 从“float”转换到“int”,可能丢失数据
改掉就好了。

也就是说,编译器已经告诉你错误原因了,但你看都不愿意看一眼。
2020-05-06 08:35
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:10 
用了冒泡排序,会不会是超时错误?可直接用c提供的qsort试试。
另:这题好像可以在数据输入阶段就可排序好,用插入排序最多只排20个数据,float数组也只要设20个。
下述代码通过测试(只对20个float元素排序):
程序代码:
#include<stdio.h>

int main() {
    int i, j, n, k, m;
    float a[20] = { 0 };
    scanf("%d%d%d", &n, &k, &m);
    while (n--)
    {
        float t, min = 1000, max = -1, sum = 0;
        for (i = 0; i < k; i++)
        {
            scanf("%f", &t);
            sum += t;
            if (min > t)min = t;
            if (max < t)max = t;
        }
        sum = (sum - min - max) / (k - 2);
        for (i = m - 1; i >= 0&&sum<a[i]; i--);
        for (j = 0; j < i; j++)a[j] = a[j + 1];
        if (i >= 0)a[i] = sum;
    }
    for (i = 0; i < m; i++)
    {
        if (i)printf(" ");
        printf("%.3f", a[i]);
    }
    return 0;
}



[此贴子已经被作者于2020-5-6 12:30编辑过]


能编个毛线衣吗?
2020-05-06 08:37
魂之子
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2019-12-25
收藏
得分:0 
回复 2楼 rjsp
感谢大佬帮我指出错误,小弟初来乍到不懂规矩,多包涵。请问一下大佬用的是什么环境,我用dev没有warning。
2020-05-06 22:50
魂之子
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2019-12-25
收藏
得分:0 
回复 3楼 wmf2014
感谢大佬给我提的宝贵建议,我补了一下插入排序和qsort函数,请问一下这些东西是哪一块的内容啊?是数据结构的内容吗?
2020-05-06 23:14
快速回复:pta上有个测试点通不过,这个代码真的写了好长时间,求求大佬帮看看到 ...
数据加载中...
 
   



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

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