c语言编程: 一维数组中存放任意4个数,如5,1,8,6.根据它生成如下矩阵

5 5 5 5 5 5 5
5 1 1 1 1 1 5
5 1 8 8 8 1 5
5 1 8 6 8 1 5
5 1 8 8 8 1 5
5 1 1 1 1 1 5
5 5 5 5 5 5 5

第1个回答  2014-11-05
#include <stdio.h>
#define N 4 /*数组元素*/
int main()
{
int arr[N] = {5, 1, 8, 6} ;
int i ;
int j ;
int matrix[2*N+10][2*N+10] ;
int size ; //size表示根据数组元素计算出的矩阵的长宽

size = 2*N-1 ; //计算矩阵的大小
for(i = 0; i < N; i++)
{
for(j = i; j <= size-1-i; j++)
{
matrix[i][j] = arr[i] ; //正方形上面一行
matrix[j][i] = arr[i] ; //正方形左边一列
matrix[size-1-i][j] = arr[i] ; //正方形下边一行
matrix[j][size-1-i] = arr[i] ; //正方形右边一列
}
}

for(i = 0; i < size; i++)
{
for(j = 0; j < size; j++)
printf("%d", matrix[i][j]) ;
printf("\n") ;
}
return 0 ;
}本回答被网友采纳