マトリックス比較サイズの物語について
7346 ワード
前に書く
このブログは永遠に荒れ果てていくと思っていたが...この時、コード作業に関する小さな記録用に自分でできるとは思わなかった.何年か后に振り返って不思议にも负の基础を见ている自分が真剣に记录しているという简単なことの准备をして、スタートしましょう.
タイトルセクション
//
int main() {
size_t total = 0, size = 0;
scanf("%zu%zu", &total, &size);
int matrixArr[MAX_TOTAL][MAX_SIZE][MAX_SIZE] = {};
for (size_t matrixIndex = 0; matrixIndex < total; ++matrixIndex) {
inputMatrices(matrixArr[matrixIndex],size);
}
qsort_r(matrixArr, total, sizeof(matrixArr[0]), &cmpMatrices, &size);
for (size_t matrixIndex = 0; matrixIndex < total; ++matrixIndex) {
printMatrices(matrixArr[matrixIndex], size);
}
return 0;
}
宣言セクション
#define MAX_TOTAL 10
#define MAX_SIZE 4
#include
//.h
void inputMatrices(int matrixArr[],size_t size);
void printMatrices(int matrixArr[],size_t size);
int cmpMatrices(const void *firstMatrixPtr, const void *secondMatrixPtr, void *sizePtr);
関数定義の部分
//.c
#include
void inputMatrices(int matrixArr[],size_t size){
int x=0,y=0,count=0;
for(x=0;xfor(y=0;yscanf("%d",(matrixArr+count++));
}
}
getchar();
return;
}
void printMatrices(int matrixArr[],size_t size){
int x=0,y=0,count=0;
for(x=0;xfor(y=0;y1;y++){
printf("%d ",*(matrixArr+count++));
}
printf("%d
",*(matrixArr+count++));
}
printf("
");
return;
}
int cmpMatrices(const void *firstMatrixPtr, const void *secondMatrixPtr, void *sizePtr){
size_t *matrixSizePtr = (size_t *)sizePtr;
size_t matrixSize = *matrixSizePtr;
int * use;
int usenum=0,count=0;
int sumfirst=0,sumsecond=0,x=0,y=0;
for(x=0;xfor(y=0;yif(x==y || x+y==matrixSize-1){
use = ((int *)(firstMatrixPtr)+count++);
usenum = *use;
sumfirst+=usenum;}
else count++;
}
}
count=0;
for(x=0;xfor(y=0;yif(x==y || x+y==matrixSize-1){
use = ((int *)(secondMatrixPtr)+count++);
usenum = *use;
sumsecond+=usenum;}
else count++;
}
}
if(sumfirst==sumsecond){
return 0;
}else if(sumfirst>sumsecond){
return 1;
}else{
return -1;
}
}
最後に
よく覚えておきたいブログですね…サボらずに、学んだことを書いてみましょう.