使用嵌套for循环高级/中级调试在C语言中打印数字矩阵模式



这是为了打印数字矩阵模式嘿,我想让我的代码在中打印数字

1 2 3 4 5
5 1 2 3 4            
4 5 1 2 3
3 4 5 1 2
2 3 4 5 1
1 2 3 4 5

但我的代码正在中打印

1 2 3 4 5
2 4 3 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
1 2 3 4 5

你能以这种方式帮我解决这个问题吗?这是我用来解决问题的源代码,你能帮我调试一下吗?

#include<stdio.h>
#include<stdlib.h>
int main()
{
system("clear");
int i,j,n,k=1,l=1;
printf("Enter the value of nn");
scanf("%d",&n);
for(i=1;i<=n+1;i++)
{
for(j=1;j<=n;j++)
{
k = i+j-1;
if(k>n)
k-=n;
printf("%d ",k);
}
printf("n");
}
return 0;
}

我会这样做:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
printf("Enter the value of nn");
scanf("%d", &n);
int val = 0;
for (int rows = 0; rows <= n; ++rows)
{
for (int cols = 0; cols < n; ++cols)
{
printf("%d ", val % n + 1);
++val;
}
printf("n");
--val;
}
return 0;
}

由于值只是使用mod%旋转,所以对我来说最有意义。

示例:https://ideone.com/OcCLjh

输出:

1 2 3 4 5 
5 1 2 3 4 
4 5 1 2 3 
3 4 5 1 2 
2 3 4 5 1 
1 2 3 4 5 

最新更新