本帖最后由 jackz007 于 2022-10-28 14:11 编辑 #include <stdio.h>
#include <stdlib.h>
#include <time.h>
void random(int d[][200] , int m , int n)
{
time_t t ;
if(n > 0 && m > 0) {
srand((unsigned long long) time(& t)) ;
for(int i = 0 ; i < n ; i ++) for(int j = 0 ; j < m ; j ++) d[i][j] = rand() % 10 ;
}
}
void swap(int * a , int * b)
{
int t ;
t = * a ; * a = * b ; * b = t ;
}
void sort(int d[] , int n)
{
for(int i = 0 ; i < n - 1 ; i ++) for(int j = i + 1 ; j < n ; j ++) if(d[i] < d[j]) swap(& d[i] , & d[j]) ;
}
int comp(int d1[] , int d2[] , int n)
{
int i ;
for(i = 0 ; i < n && d1[i] == d2[i] ; i ++) ;
return (i == n) ? 0 : (d1[i] > d2[i]) ? 1 : -1 ;
}
int main()
{
int a[200][200] , b[200][200] , d[200] , e[200] , i , j , k , m = 12 , n , t ;
scanf("%d", & n) ;
random(a , m , n) ;
for(i = 0 ; i < n ; i ++) for(j = 0 ; j < m ; j ++) b[i][j] = a[i][j] ;
for(i = 0 ; i < n ; i ++) {
printf("[%2d] : %d" , i + 1 , a[i][0]) ;
for(j = 1 ; j < m ; j ++) printf(" %d" , a[i][j]) ;
printf("\n") ;
}
printf("\n") ;
for(i = 0 ; i < n ; i ++) for(j = d[i] = 0 ; j < m ; j ++) d[i] += a[i][j] ;
for(i = 0 ; i < n ; i ++) sort(a[i] , m) ;
for(i = 0 ; i < n ; i ++) e[i] = i ;
for(i = 0 ; i < n - 1 ; i ++) for(j = i + 1 ; j < n ; j ++) if(d[e[i]] < d[e[j]]) swap(& e[i] , & e[j]) ;
for(k = 0 ; k < n && d[e[k]] == d[e[0]] ; k ++) {
printf("[%2d] : %d" , e[k] + 1 , b[e[k]][0]) ;
for(i = 1 ; i < m ; i ++) printf(" %d" , b[e[k]][i]) ;
printf("\n") ;
}
if(k > 1) {
for(i = 0 ; i < k - 1 ; i ++) for(j = i + 1 ; j < k ; j ++) if(comp(a[e[i]] , a[e[j]] , m) < 0) swap(& e[i] , & e[j]) ;
printf("\n") ;
printf("[%2d] : %d" , e[0] + 1 , b[e[0]][0]) ;
for(i = 1 ; i < m ; i ++) printf(" %d" , b[e[0]][i]) ;
printf("\n") ;
}
}
编译、运行实况:D:\[00.Exerciese.2022]\C>g++ -o x x.c
D:\[00.Exerciese.2022]\C>x
8
[ 1] : 3 8 0 5 8 6 9 4 8 2 3 1
[ 2] : 9 6 1 3 7 0 0 2 2 8 1 9
[ 3] : 2 5 1 2 8 4 1 9 9 5 2 0
[ 4] : 5 9 0 5 4 9 6 7 6 8 5 7
[ 5] : 7 6 7 5 1 4 4 3 7 4 8 3
[ 6] : 9 1 8 7 3 9 7 6 6 8 5 2
[ 7] : 5 5 2 6 0 3 5 7 5 3 3 4
[ 8] : 0 0 6 4 8 8 2 8 8 0 0 0
[ 4] : 5 9 0 5 4 9 6 7 6 8 5 7
[ 6] : 9 1 8 7 3 9 7 6 6 8 5 2
[ 6] : 9 1 8 7 3 9 7 6 6 8 5 2
D:\[00.Exerciese.2022]\C>
|