C语言程序填空题:函数fun的功能,就是根据输入的n阶方阵,循环下移一行,产生矩阵。

img

#include<stdio.h>
#include<stdlib.h>
#define N 30
/**********FILL**********/
void fun(int         [1]    ,int n)
{
    int i,j,t;
    for(j=0;j<n;j++)
    {
/**********FILL**********/
        t=     [2]    ;
        for(i=1;i<n;i++)
        {
/**********FILL**********/
                    [3]    =x[n-i-1][j];
        }
        x[0][j]=t;
    }
}
int main()
{
    int a[N][N],i,j,n;
    printf("输入矩阵阶数:\n");
    scanf("%d",&n);
    printf("按行输入元素值:\n");
    for(i=0;i<n;i++)
      for(j=0;j<n;j++)
        scanf("%d",&a[i][j]);
/**********FILL**********/
    fun(       [4]    );
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
          printf("%d ",a[i][j]);
        printf("\n");
    }
    system("pause");
    return 0;
}


下面是一个实现,供参考:


#include<stdio.h>
#include<stdlib.h>
#define N 30
/**********FILL**********/
void fun(int  (*x)[N]    ,int n)  // x为指向包含N个整数的数组的指针 
{
    int i,j,t;
    for(j=0;j<n;j++)
    {
/**********FILL**********/
        t=   x[n-1][j]  ; //存储倒数第一行的数 
        for(i=1;i<n;i++)
        {
/**********FILL**********/
           x[n-i][j]=x[n-i-1][j];  //将每行的值从倒数第一行往上逐行赋值为前一行的值,到第二行停止 
        }
        x[0][j]=t;
    }
}
int main()
{
    int a[N][N],i,j,n;
    printf("输入矩阵阶数:\n");
    scanf("%d",&n);
    printf("按行输入元素值:\n");
    for(i=0;i<n;i++)
      for(j=0;j<n;j++)
        scanf("%d",&a[i][j]);
/**********FILL**********/
    fun(a, n);
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
          printf("%d ",a[i][j]);
        printf("\n");
    }
    system("pause");
    return 0;
}
 
 

img