用C语言编程输出如下图形

4. 输出以下数字图形
N=5
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1

#define N 5
#include<stdio.h>


void main()
{
   int a[N][N];
   int i,j;
   for (i=0; i<N; i++)   
      for (j=0; j<N; j++)
     {  /* 按照规律给这5行5列元素赋值 */
         if (i==0 || j==0 || i==4 || j==4)
              a[i][j] = 1;
         else if (i==1 || j==1 || i==3 || j==3)
              a[i][j] = 2;
         else
              a[i][j] = 3;
      }

 

     for (i=0; i<N; i++)    /*输出这5行5列元素*/
    {
         for (j=0; j<N; j++)
             printf("%-4d", a[i][j]);
         printf("\n");
     }
}

 

在Visual C++ 6.0环境下调试运行结果如下图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-30
#include <stdio.h>

int min(int a, int b)
{
    return (a<b?a:b);
}

int main()
{
    int i, j, N=5;
    //scanf("%d", &N);             //如果需要读入N
    for (i=1; i<=N; ++i)
        for (j=1; j<=N; ++j)
        {
            printf("%d", min(min(i, N+1-i), min(j, N+1-j)));
            if (N-j) printf("\t"); else printf("\n");
        }
    return 0;
}

第2个回答  2014-12-30
数组外围填1
内维依次递进填2,3……