对于一个二维数组,最外圈赋值1,第二圈赋值2,以此类推。
Idea一个元素所处圈数与其距边缘的距离正相关,直接套公式即可。
Code#include#define MAX_SIZE 10 int min (int a, int b, int c, int d) ; void arr_creat(int arr[MAX_SIZE][MAX_SIZE]); void arr_out(int arr[MAX_SIZE][MAX_SIZE]); int main() { int arr[MAX_SIZE][MAX_SIZE]; arr_creat(arr); arr_out(arr); return 0; } int min (int a, int b, int c, int d) { a = a < b ? a : b; a = a < c ? a : c; a = a < d ? a : d; return a; } void arr_creat(int arr[MAX_SIZE][MAX_SIZE]) { for (int i = 0; i < MAX_SIZE; i++) { for (int j = 0; j < MAX_SIZE; j++) { arr[i][j] = min(i, j, MAX_SIZE-1-i, MAX_SIZE-1-j) + 1;//distance to edge + 1 } } } void arr_out(int arr[MAX_SIZE][MAX_SIZE]) { for (int i = 0; i < MAX_SIZE; i++) { for (int j = 0; j < MAX_SIZE; j++) { printf("%d ", arr[i][j]); } printf("n"); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)