困扰我的C语言排名问题

问题描述:

困扰我的C语言排名问题
我就是想问在一个二维数组a[7][2]中,如果我想将第一列7个数排一下名,并将名次计入第一列中的话,怎么弄?(主要是并列名次不会弄!)
(比如:第一列分别是11、12、13、13、14、15、15,那么排名分别是5、4、3、3、2、1、1)
说错了!是把名次计入第二列中!
1个回答 分类:综合 2014-10-16

问题解答:

我来补答
#include<stdio.h>/////要是出现并列下一个人名次要后退不只一名
#include<time.h>
#include<stdlib.h>
#include<string.h>
int main ()

srand(time(NULL));
int a[7][2];
int b[8],t;

for(int i=0;i<7;i++)
{
a[i][0]=rand()%20;
b[i]=a[i][0];
}
printf("随机生成的7个数为:\n");
for(int i=0;i<7;i++)////输出
printf("%-4d ",a[i][0]);
printf("\n");
for(int i=0;i<7;i++)///排序
for(int j=0;j<6-i;j++)
{
if(b[j]<b[j+1])
{
t=b[j];
b[j]=b[j+1];
b[j+1]=t;
}
}

for(int i=0;i<7;i++)
{
int k=1;
for(int j=0;j<7;j++)
{
if(a[i][0]!=b[j])
{
k++;
}
else
break;
}
a[i][1]=k;
}
printf("排序的大小输出:\n");

for(int i=0;i<7;i++)////输出
printf("%-4d",b[i]);
printf("\n");
for(int i=0;i<7;i++)////输出
printf("%-4d%-4d \n",a[i][0],a[i][1]);
return 0;
}
 
 
展开全文阅读
剩余:2000