鱼C论坛

 找回密码
 立即注册
查看: 2405|回复: 4

[已解决]用数组比大小为什么没用

[复制链接]
发表于 2022-12-15 19:10:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 2207122216 于 2022-12-15 21:22 编辑
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main() {
        srand(time(NULL));
        int s[6][7];
        char name[][10]= {"易烊千玺","易烊百玺","易烊十玺","王一博","王二博","王三博"};

        for(int i=0; i<6; i++) {
                printf("%s:",name[i]) ;
        int max,min,sum;
                for(int j=0; j<7; j++) {
                        s[i][j]=rand()%101;
                        max=min=s[i][0] ;
                        if(max<s[i][j])
                                max=s[i][j];
                        if(min>s[i][j])
                                min=s[i][j];
                        printf("%d",s[i][j]) ;
                        printf("\t") ;
        
                }
                sum=sum-max-min;
                printf("%d   %d   %d",max,min,sum) ;
                printf("\n");
        }
        

        return 0;
}
//下面是要求

1.计算每位选手的得分,分数保留小数点后2位       






2.   去掉一个最高分,去掉一个最低分,剩下5个评委的平均分即为该选手的得分       






3.   将选手的得分进行从高到低排序,并输出前3名       






4.   考虑是否有并列的情况(可选)
最佳答案
2022-12-16 11:09:46
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main() {
        srand(time(NULL));
        int s[6][7];
        char name[][10]= {"易烊千玺","易烊百玺","易烊十玺","王一博","王二博","王三博"};

        for(int i=0; i<6; i++) {
                printf("%10s:",name[i]) ;
        int max=0,min=101,sum=0;/////////////
        for(int j=0; j<7; j++)
        {
            s[i][j]=rand()%101;
            if(max<s[i][j])
                max=s[i][j];
            if(min>s[i][j])
                min=s[i][j];
            sum+=s[i][j];///////////////
            printf("%4d",s[i][j]) ;
            printf("\t") ;

        }
        sum=sum-max-min;
        printf("max:%4d min:%4d sum:%4d",max,min,sum) ;
        printf("\n");
    }


        return 0;
}
  易烊千玺:   8   66      63      54      67      36       5    max:  67 min:   5 sum: 227
  易烊百玺:  56   42      62       5      14      25      38    max:  62 min:   5 sum: 175
  易烊十玺:  41   87      54      25      90       9      96    max:  96 min:   9 sum: 297
    王一博:  14   57      40      56       2      54      81    max:  81 min:   2 sum: 221
    王二博:  21   59       9      98      28       5      70    max:  98 min:   5 sum: 187
    王三博:  31   59      65      29      44      82      97    max:  97 min:  29 sum: 281

Process returned 0 (0x0)   execution time : 0.238 s
Press any key to continue.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-12-15 19:19:12 | 显示全部楼层
为什么用二维数组发帖会隐藏前面那个【i】, 我复制粘贴上来就没有了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-15 20:19:27 | 显示全部楼层
2207122216 发表于 2022-12-15 19:19
为什么用二维数组发帖会隐藏前面那个【i】, 我复制粘贴上来就没有了

点击这个<>,把代码放在出现的对话框里
否则
[i]
会被认为成斜体标志
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-16 11:09:46 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main() {
        srand(time(NULL));
        int s[6][7];
        char name[][10]= {"易烊千玺","易烊百玺","易烊十玺","王一博","王二博","王三博"};

        for(int i=0; i<6; i++) {
                printf("%10s:",name[i]) ;
        int max=0,min=101,sum=0;/////////////
        for(int j=0; j<7; j++)
        {
            s[i][j]=rand()%101;
            if(max<s[i][j])
                max=s[i][j];
            if(min>s[i][j])
                min=s[i][j];
            sum+=s[i][j];///////////////
            printf("%4d",s[i][j]) ;
            printf("\t") ;

        }
        sum=sum-max-min;
        printf("max:%4d min:%4d sum:%4d",max,min,sum) ;
        printf("\n");
    }


        return 0;
}
  易烊千玺:   8   66      63      54      67      36       5    max:  67 min:   5 sum: 227
  易烊百玺:  56   42      62       5      14      25      38    max:  62 min:   5 sum: 175
  易烊十玺:  41   87      54      25      90       9      96    max:  96 min:   9 sum: 297
    王一博:  14   57      40      56       2      54      81    max:  81 min:   2 sum: 221
    王二博:  21   59       9      98      28       5      70    max:  98 min:   5 sum: 187
    王三博:  31   59      65      29      44      82      97    max:  97 min:  29 sum: 281

Process returned 0 (0x0)   execution time : 0.238 s
Press any key to continue.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-16 13:05:49 | 显示全部楼层
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int cmp(void* a,void *b)
{
    return ((int*)b)[9]-((int*)a)[9];
}
int main()
{
    srand(time(NULL));
    int s[6][11];
    char* name[10]= {"易烊千玺","易烊百玺","易烊十玺","王一博","王二博","王三博"};

    for(int i=0; i<6; i++)
    {
        s[i][10]=i;
        // printf("%10s:",name[i]) ;
        int max=0,min=101,sum=0;
        for(int j=0; j<7; j++)
        {
            s[i][j]=rand()%101;
            if(max<s[i][j])
                max=s[i][j];
            if(min>s[i][j])
                min=s[i][j];
            sum+=s[i][j];
            //printf("%4d",s[i][j]) ;
            //printf("\t") ;

        }
        s[i][7]=max;
        s[i][8]=min;
        s[i][9]=sum=sum-max-min;

        //printf("max:%4d min:%4d sum:%4d",max,min,sum) ;
        //printf("\n");
    }
    qsort(s,6,11*sizeof(int),cmp);
    //s[3][9]=s[2][9];
    //qsort(s,6,11*sizeof(int),cmp);
    for(int i=0,mc=1,prv=s[0][9]; mc<4&&i<6; i++)
    {

        printf("第%d名:%10s:",mc,name[s[i][10]]) ;
        for(int j=0; j<7; j++)
        {
            printf("%4d",s[i][j]) ;
            printf("\t") ;

        }
        printf("max:%4d min:%4d sum:%4d",s[i][7],s[i][8],s[i][9]) ;

        if(prv==s[i+1][9])mc-=1;
        mc+=1;
        prv=s[i+1][9];
        printf("\n");
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 08:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表