第一次编程作业 第一题定义一个N*N (N的值宏定义为3)的二维整数数组,二维数组初值为:6,2,5,10,4,30,7,9,8,编程完成以下要求: 1、以初始化方式给二维数组赋初值; 2、将该二维数组的外围元素顺时针旋转90度; 625 7106 10430 旋转为 942 798 8305 3、将旋转后二维数组按行列格式输出到显示器。 第二题有一个5*5二维数组,试编程求周边元素及对角线元素之和,并输出该数组元素值最小的元素。
时间: 2023-03-25 13:03:22 浏览: 136
第一次编程作业1
我可以回答你的第一个问题:
```c
#include <stdio.h>
#define N 3
int main() {
int arr[N][N] = {{6, 2, 5}, {10, 4, 30}, {7, 9, 8}};
int temp[N][N];
int i, j;
// 顺时针旋转90度
for (i = ; i < N; i++) {
for (j = ; j < N; j++) {
temp[j][N-1-i] = arr[i][j];
}
}
// 输出旋转后的二维数组
for (i = ; i < N; i++) {
for (j = ; j < N; j++) {
printf("%d ", temp[i][j]);
}
printf("\n");
}
return ;
}
```
第二题的答案如下:
```c
#include <stdio.h>
#define N 5
int main() {
int arr[N][N] = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}, {21, 22, 23, 24, 25}};
int sum = , min = arr[][], min_i = , min_j = ;
int i, j;
// 求周边元素及对角线元素之和
for (i = ; i < N; i++) {
for (j = ; j < N; j++) {
if (i == || i == N-1 || j == || j == N-1 || i == j || i+j == N-1) {
sum += arr[i][j];
}
if (arr[i][j] < min) {
min = arr[i][j];
min_i = i;
min_j = j;
}
}
}
// 输出数组元素值最小的元素
printf("数组元素值最小的元素为 arr[%d][%d] = %d\n", min_i, min_j, min);
return ;
}
```
阅读全文