HzuMomoc


私信TA

用户名:932521665

访问量:35963

签 名:

记得在搬砖中多摸鱼!!!

等  级
排  名 90
经  验 9079
参赛次数 8
文章发表 68
年  龄 0
在职情况 在职
学  校 贺州学院
专  业

  自我简介:

解题思路:

  1. 定义  int s[1000],m[5]={0},t,p[5][1000],a[5]={0}; //a[]为p[ ][a]]的位置,用数组m[ ]每个等级的统计个数

  2. 输入

  3. 对每个等级统计个数并保存到另一个数组,把个数统计到m[]数组

  4. 找出个数最多的数组m[max]

  5. 排序

  6. 输出




注意事项:

参考代码:

#include <stdio.h>
void px(int a[],int x)
{
 int i,j,max,t;
 for(i=0;i<x;i++)
 {
  max=i;
  for(j=i;j<x;j++)
   if(a[j]>a[max])
    max=j;
  t=a[max];a[max]=a[i];a[i]=t;

 }
}
int main()

 int s[1000],m[5]={0},t,p[5][1000],a[5]={0};//a[]为p[][a]]的位置,m[]每个等级的统计个数
 int n,j,i,max;//max找出个数最多的数组m[]的位置
 scanf("%d",&n);//输入
 for(j=0;j<n;j++)
  scanf("%d",&s[j]);
 for(i=0,j=0;i<n;i++)
 {
  if(s[i]>=90 && s[i]<=100)//统计
   {
    m[0]++;//统计个数
    p[0][a[0]]=s[i];//用数组p[][a]]保存
    a[0]++;//数组a[0]改变p[][a]]的位置
     }
  else if(s[i]>=80 && s[i]<=89)
   {
    m[1]++;
    p[1][a[1]]=s[i];
    a[1]++;

  }
  else if(s[i]>=70 && s[i]<=79)
   {
    m[2]++;
    p[2][a[2]]=s[i];
    a[2]++;
  }
  else if(s[i]>=60 && s[i]<=69)
   {
    m[3]++;
    p[3][a[3]]=s[i];
    a[3]++;
  }
  else if(s[i]>=0 && s[i]<=59)
   {
    m[4]++;
    p[4][a[4]]=s[i];
    a[4]++;

  }
  else
   ;
 }
 max=0;
 for(i=1;i<5;i++)//找出个数最多的等级的位置
  if(m[max]<m[i])
  {
    max=i;
  }
 printf("%d %d %d %d %d\n",m[0],m[1],m[2],m[3],m[4]);
 printf("%d\n",m[max]);
 px(p[max],m[max]);//对等级最多的位置进行排序
    for(i=0;i<m[max];i++)//输出
    printf("%d ",p[max][i]);
 
}


 

0.0分

5 人评分

  评论区

  • «
  • »