#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
// 1、(**)有一个3行4列的二维数组,要求编程找出最大的元素,并输出所在的行和列。
// int array[3][4] = {0};
// int max = 0 , x = 0, y = 0;
// for (int i = 0; i < 3; i++) {
// for (int j = 0; j < 4; j++) {
// int ran = arc4random() % (100 - 10 + 1) + 10;
// array[i][j] = ran;
// if (max < array[i][j]) {
// max = array[i][j];
// x = i;
// y = j;
// }
// }
// }
// printf("max = %d 行: %d 列: %d", max, x, y);
// 2、(**)输入6个字符串,并对它们按从小到大的顺序排序后输出。
// char array[6][20]={0};
// char temp[20] = {0};
// printf("输入字符串:\n");
// for (int i = 0; i < 6; i++) {
// scanf("%s",array[i]);
// }
//
// for (int i = 0; i < 5; i++) {
// for (int j = 0; j < 5 - i; j++) {
// if (strcmp(array[j], array[j + 1]) > 0) {
// strcpy(temp, array[j]);
// strcpy(array[j], array[j + 1]);
// strcpy(array[j + 1], temp);
// }
// }
// }
// for (int i = 0; i < 6; i++) {
// printf("%s ", array[i]);
// }
// 3、(****)找出一个二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可能没有“鞍点”),打印有关信息。(提示:注意特殊情况:没鞍点或多个鞍点)
int max = 0, x = 0, y = 0, min = 0, count = 0;
int array[4][5] = {0};
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
int ran = arc4random() % (50 - 10 + 1) + 10;
array[i][j] = ran;
printf("%d ", array[i][j]);
}
printf("\n");
}
// int array[4][5] ={
// {6, 7, 8, 9, 3},
// {5, 6, 7, 6, 5},
// {11,12,12,14,17},
// {1, 5, 4, 2, 3}
// };
for (int i = 0; i < 4; i++) {
max = 0;
for (int j = 0; j < 5; j++) {
if (array[i][j] > max) {
max = array[i][j];
x = i;
y = j;
}
}
min = max;
for (int k = 0; k < 4; k++) {
if( min > array[k][y]){
min = array[k][y];
}
}
if(min == max){
count++;
printf("鞍点是 %d 行:%d 列:%d", max, x, y);
}
}
if (count == 0) {
printf("没有鞍点\n");
}
// 4、(**)随机生成一个三维数组,编程求深度的平均值,保存在一个二维数组中(相当于一个模仿从上面看)。三维数组元素的和除以三维数组里面的所有元素个数,得到平均值
// 深度为 不同层的 同一行 同一列 的平均值 ,存放在二维数组中
int arr[3][4][5] = {0};
int a[4][5] = {0};
int sum = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
for (int k = 0; k < 5; k++) {
int ran = arc4random() % (10 - 1 + 1) + 1;
arr[i][j][k] = ran;
printf("%d ", arr[i][j][k]);
}
printf("\n");
}
printf("\n");
}
printf("平均深度:\n");
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 5; j++) {
sum = 0;
for (int k = 0; k < 3; k++) {
sum += arr[k][i][j];
}
a[i][j] = sum / 3;
printf("%d ", a[i][j]);
}
printf("\n");
}