编程,蛇形矩阵1,输入:n,输出:蛇形矩阵.例如:输入4,输出:13410 259116812157131416

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/13 06:59:01

编程,蛇形矩阵1,输入:n,输出:蛇形矩阵.例如:输入4,输出:13410 259116812157131416
编程,蛇形矩阵
1,输入:n,输出:蛇形矩阵.例如:输入4,输出:
13410
25911
681215
7131416

编程,蛇形矩阵1,输入:n,输出:蛇形矩阵.例如:输入4,输出:13410 259116812157131416
C语言实现:
#include
#define N 100//给数组定义一个最大值
void main()
{
int n,i,j,k,s=1;
static int a[N][N];
printf("如果您想要得到逆的蛇形矩阵,输入数字2,否则输入任意数字:\n");
scanf("%d",&s);
printf("输入矩阵阶数:\n");
scanf("%d",&n);//键盘输入矩阵阶数
for(i=0;i

4
1 3 4 10
2 5 9 11
6 8 12 15
7 13 14 16
Press any key to continue
#include
int main(){
//该程序虽然能通过评测系统的检测,但时间复杂度为O(n^3),因而有待改...

全部展开

4
1 3 4 10
2 5 9 11
6 8 12 15
7 13 14 16
Press any key to continue
#include
int main(){
//该程序虽然能通过评测系统的检测,但时间复杂度为O(n^3),因而有待改进
int i,j,k,N; //矩阵阶数
int a[11][11]; //N阶矩阵
int count=0; //矩阵元素值,初始为0
scanf("%d",&N);
for(i=1;i<=2*N-1;i++){ //N阶方阵有2*N-1条反对角线,依次遍历之
if(i%2!=0){ //当对角线编号为奇数时,各元素按此对角线上的矩阵各元素下标之和从小到大的顺序排列
for(j=1;j<=N;j++)
for(k=1;k<=N;k++){
if(j+k==i+1) a[j][k]=++count; //各元素的下标之和==对角线编号+1
}
}
else{ //当对角线编号为偶数时,各元素按此对角线上的矩阵各元素下标之和从大到小的顺序排列
for(int j=N;j>=1;j--)
for(int k=N;k>=1;k--){
if(j+k==i+1) a[j][k]=++count; //各元素的下标之和==对角线编号+1
}
}
}
for(i=1;i<=N;i++)
for(j=1;j<=N;j++){
if(j!=N)
printf("%4d",a[i][j]);
else
printf("%4d\n",a[i][j]);
}
return 0;
}

收起