#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;
}