A little code
来源:互联网 发布:视频录制软件哪个好 编辑:程序博客网 时间:2024/05/21 07:05
#include <stdio.h>#include <stdlib.h>#define MAX_SIZE 4#define MAX_TOTAL 10void inputMatrices( int matrix[MAX_SIZE][MAX_SIZE], int size );void printMatrices( int matrix[MAX_SIZE][MAX_SIZE], int size );int cmpMatrices(const void *firstMatrixPtr, const void *secondMatrixPtr, void *sizePtr);int main() { size_t total = 0, size = 0; scanf("%zu%zu", &total, &size); int matrixArr[MAX_TOTAL][MAX_SIZE][MAX_SIZE] = {0}; for (size_t matrixIndex = 0; matrixIndex < total; ++matrixIndex) inputMatrices(matrixArr[matrixIndex], size); printf("\n"); qsort_r(matrixArr, total, sizeof(matrixArr[0]), &cmpMatrices, &size); for (size_t matrixIndex = 0; matrixIndex < total; ++matrixIndex) //printMatrices(matrixArr[matrixIndex], size); return 0;}void inputMatrices(int matrixArr[][MAX_SIZE],int size){ int i=0,j=0; for(;i<size;i++) { for(j=0;j<size;j++) scanf("%d",&matrixArr[i][j]); }}void printMatrices(int matrixArr[][MAX_SIZE],int size){ int i=0,j=0; for(;i<size;i++) { for(j=0;j<size;j++) { if(j!=size-1) printf("%d ",matrixArr[i][j]); else printf("%d",matrixArr[i][j]); } printf("\n"); } printf("\n");}int cmpMatrices(const void *firstMatrixPtr, const void *secondMatrixPtr, void *sizePtr){ size_t mSize=*(size_t *)sizePtr; int *mp1=(int *)firstMatrixPtr; int *mp2=(int *)secondMatrixPtr; int sum1=0,sum2=0,count1=0,count2=0,count3=0; count2=mSize-1; for(count1=0;count1<mSize;count1++,count2--) { sum1+=*(mp1+(MAX_SIZE+1)*count1); if(mSize!=1) sum1+=*(mp1+(MAX_SIZE)*count1+count2); } for(count1=0,count2=mSize-1;count1<mSize;count1++,count2--) { sum2+=*(mp2+count1*(MAX_SIZE+1)); if(mSize!=1) sum2+=*(mp2+(MAX_SIZE)*count1+count2); } if(mSize%2!=0&&mSize!=1) { sum1-=*(mp1+((MAX_SIZE)*mSize/2)+(mSize/2)); sum2-=*(mp2+((MAX_SIZE)*mSize/2)+(mSize/2)); } printf("%d %d %d %d\n",mSize,sum1,sum2, (sum1>sum2)-(sum1<sum2)); return (sum1>sum2)-(sum1<sum2);}int cmpMatrices1(const void *firstMatrixPtr, const void *secondMatrixPtr, void *sizePtr) { size_t matrixSize = *(size_t *)sizePtr; int *firstMatrix = (int *)firstMatrixPtr; int *secondMatrix = (int *)secondMatrixPtr; int sum1 = 0, sum2 = 0; int i = 0, j = matrixSize-1; for ( i = 0; i < matrixSize; i++, j-- ) { sum1 += *( firstMatrix+(MAX_SIZE+1)*i ); if ( matrixSize > 1 ) sum1 += *( firstMatrix+(MAX_SIZE)*i+j ); } for ( i = 0, j = matrixSize-1; i < matrixSize; i++, j-- ) { sum2 += *( secondMatrix+(MAX_SIZE+1)*i ); if ( matrixSize > 1 ) sum2 += *( secondMatrix+(MAX_SIZE)*i+j ); } if ( matrixSize%2 != 0 && matrixSize != 1 ) { sum2 -= *( secondMatrix+(MAX_SIZE)*(matrixSize/2)+matrixSize/2 ); sum1 -= *( firstMatrix+(MAX_SIZE)*(matrixSize/2)+matrixSize/2 ); } printf("%d %d %d %d\n",matrixSize,sum1,sum2, (sum1>sum2)-(sum1<sum2)); return (sum1 > sum2) - (sum1 < sum2);}/*7 3-41 43 2747 10 3644 20 -2816 -4 4822 22 -34-49 3 -37-50 -2 4-20 26 31-45 -26 -44-37 27 29-17 -32 2635 16 17-18 -49 4446 -50 -2330 -43 029 -14 35-31 32 -17-47 30 20-24 -32 012 15 -4550 -22 -48*/
0 0
- A little code
- Record a little code fragment of Neutron server (IceHouse)
- A little little surprise
- A little story
- Editing a little faster
- A little tired
- a little bit different
- A Little Trick
- A LITTLE ABOUT UI
- A Little Love
- A. Little Xor
- a little riak book
- (mysql)a little...
- a little about c++
- a little thoughts
- few, little, a few, a little 的用法
- A. Little Elephant and Function
- A. Little Elephant and Chess
- 滤波器的抽头系数、通带、阻带、过渡带
- 归一化处理的目的和意义及其MATLAB方法
- oracle后台进程
- advstringGrid列不见了
- Ubuntu16.04安装JavaJDK1.8环境配置
- A little code
- layer-list -- layer-list的基本使用介绍
- Java序列化基础案例
- 比较器Comparable与Comparator实践
- 借助树莓派python脚本24小时刷访问量
- lets encrypt教程
- C# 读取arcgis导出的栅格txt文档,并将没有值的像元插值
- Java中(静态)变量、(静态)代码块的执行顺序
- string.Format对C#字符串格式化