困扰我的C语言排名问题我就是想问在一个二维数组a[7][2]中,如果我想将第一列7个数排一下名,并将名次计入第一列中的话,怎么弄?(主要是并列名次不会弄!)(比如:第一列分别是11、12、13
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/12 23:08:06
![困扰我的C语言排名问题我就是想问在一个二维数组a[7][2]中,如果我想将第一列7个数排一下名,并将名次计入第一列中的话,怎么弄?(主要是并列名次不会弄!)(比如:第一列分别是11、12、13](/uploads/image/z/5125226-50-6.jpg?t=%E5%9B%B0%E6%89%B0%E6%88%91%E7%9A%84C%E8%AF%AD%E8%A8%80%E6%8E%92%E5%90%8D%E9%97%AE%E9%A2%98%E6%88%91%E5%B0%B1%E6%98%AF%E6%83%B3%E9%97%AE%E5%9C%A8%E4%B8%80%E4%B8%AA%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84a%5B7%5D%5B2%5D%E4%B8%AD%2C%E5%A6%82%E6%9E%9C%E6%88%91%E6%83%B3%E5%B0%86%E7%AC%AC%E4%B8%80%E5%88%977%E4%B8%AA%E6%95%B0%E6%8E%92%E4%B8%80%E4%B8%8B%E5%90%8D%2C%E5%B9%B6%E5%B0%86%E5%90%8D%E6%AC%A1%E8%AE%A1%E5%85%A5%E7%AC%AC%E4%B8%80%E5%88%97%E4%B8%AD%E7%9A%84%E8%AF%9D%2C%E6%80%8E%E4%B9%88%E5%BC%84%3F%EF%BC%88%E4%B8%BB%E8%A6%81%E6%98%AF%E5%B9%B6%E5%88%97%E5%90%8D%E6%AC%A1%E4%B8%8D%E4%BC%9A%E5%BC%84%21%EF%BC%89%EF%BC%88%E6%AF%94%E5%A6%82%EF%BC%9A%E7%AC%AC%E4%B8%80%E5%88%97%E5%88%86%E5%88%AB%E6%98%AF11%E3%80%8112%E3%80%8113)
困扰我的C语言排名问题我就是想问在一个二维数组a[7][2]中,如果我想将第一列7个数排一下名,并将名次计入第一列中的话,怎么弄?(主要是并列名次不会弄!)(比如:第一列分别是11、12、13
困扰我的C语言排名问题
我就是想问在一个二维数组a[7][2]中,如果我想将第一列7个数排一下名,并将名次计入第一列中的话,怎么弄?(主要是并列名次不会弄!)
(比如:第一列分别是11、12、13、13、14、15、15,那么排名分别是5、4、3、3、2、1、1)
说错了!是把名次计入第二列中!
困扰我的C语言排名问题我就是想问在一个二维数组a[7][2]中,如果我想将第一列7个数排一下名,并将名次计入第一列中的话,怎么弄?(主要是并列名次不会弄!)(比如:第一列分别是11、12、13
#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;
}