#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
void arr_fill(unsigned rows, unsigned cols, int **array) {
unsigned i,j;
for(i=0;i<rows;i++)
for(j=0;j<cols;j++)
scanf("%d",&array
[i
][j
]); }
void arr_print(unsigned rows, unsigned cols, int **array) {
unsigned i,j;
for(i=0;i<rows;i++) {
for(j=0;j<cols;j++)
}
}
void arr_rev_cols(unsigned rows, unsigned cols, int **array) {
unsigned i,j;
int tmp;
for(j=0;j<cols;j++) {
for(i=0;i<rows/2;i++) {
tmp=array[i][j];
array[i][j] = array[rows-1-i][j];
array[rows-1-i][j]=tmp;
}
}
}
#define ARR_ROWS 4
#define ARR_COLS 4
int main(void) {
int **array;
int i,j;
array
= malloc(sizeof(int*)*ARR_ROWS
); for(i=0; i<ARR_ROWS; i++)
array
[i
] = malloc(sizeof(int)*ARR_COLS
);
arr_fill(ARR_ROWS,ARR_COLS,array);
arr_print(ARR_ROWS,ARR_COLS,array);
arr_rev_cols(ARR_ROWS,ARR_COLS,array);
arr_print(ARR_ROWS,ARR_COLS,array);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0ZGRlZi5oPgoKdm9pZCBhcnJfZmlsbCh1bnNpZ25lZCByb3dzLCB1bnNpZ25lZCBjb2xzLCBpbnQgKiphcnJheSkgewoJdW5zaWduZWQgaSxqOwoJZm9yKGk9MDtpPHJvd3M7aSsrKQoJCWZvcihqPTA7ajxjb2xzO2orKykKCQkJc2NhbmYoIiVkIiwmYXJyYXlbaV1bal0pOwp9Cgp2b2lkIGFycl9wcmludCh1bnNpZ25lZCByb3dzLCB1bnNpZ25lZCBjb2xzLCBpbnQgKiphcnJheSkgewoJdW5zaWduZWQgaSxqOwoJZm9yKGk9MDtpPHJvd3M7aSsrKSB7CgkJZm9yKGo9MDtqPGNvbHM7aisrKQoJCQlwcmludGYoIiVkICIsYXJyYXlbaV1bal0pOwoJCXByaW50ZigiXG4iKTsKCX0KfQoKdm9pZCBhcnJfcmV2X2NvbHModW5zaWduZWQgcm93cywgdW5zaWduZWQgY29scywgaW50ICoqYXJyYXkpIHsKCXVuc2lnbmVkIGksajsKCWludCB0bXA7Cglmb3Ioaj0wO2o8Y29scztqKyspIHsKCQlmb3IoaT0wO2k8cm93cy8yO2krKykgewoJCQl0bXA9YXJyYXlbaV1bal07CgkJCWFycmF5W2ldW2pdID0gYXJyYXlbcm93cy0xLWldW2pdOwoJCQlhcnJheVtyb3dzLTEtaV1bal09dG1wOwoJCX0KCX0KfQoKI2RlZmluZQkJQVJSX1JPV1MJNAojZGVmaW5lCQlBUlJfQ09MUwk0CgppbnQgbWFpbih2b2lkKSB7CglpbnQgKiphcnJheTsKCWludCBpLGo7CglhcnJheSA9IG1hbGxvYyhzaXplb2YoaW50KikqQVJSX1JPV1MpOwoJZm9yKGk9MDsgaTxBUlJfUk9XUzsgaSsrKQoJCWFycmF5W2ldID0gbWFsbG9jKHNpemVvZihpbnQpKkFSUl9DT0xTKTsKCQkKCWFycl9maWxsKEFSUl9ST1dTLEFSUl9DT0xTLGFycmF5KTsKCWFycl9wcmludChBUlJfUk9XUyxBUlJfQ09MUyxhcnJheSk7CglhcnJfcmV2X2NvbHMoQVJSX1JPV1MsQVJSX0NPTFMsYXJyYXkpOwoJcHJpbnRmKCJcbiIpOwoJYXJyX3ByaW50KEFSUl9ST1dTLEFSUl9DT0xTLGFycmF5KTsKCXJldHVybiAwOwp9