我想像这样移动数组中的元素 如果
n = 3
我希望输出如下:
1 2 3
3 1 2
2 3 1
我的输出必须有 n 行
我试过了,但没用
#include <stdio.h>
int main() {
int n; scanf("%d", &n);
int lines[n]; int i,j;
for(i=0;i<n;i++) {
lines[i] = (i+1) % 10;
}
for(i=0;i<n;i++) {
for(j=n;j>0;j--) {
printf("%d ", lines[(i+j)%n]);
}
printf("\n");
}
}
第一行有问题,但我不知道该怎么办。 谢谢您的帮助🙇u200d♀️!
您需要向后运行外循环,向前运行内循环:
#include <stdio.h>
int main() {
int n; scanf("%d", &n);
int lines[n]; int i,j;
for(i=0;i<n;i++) {
lines[i] = (i+1) % 10;
}
for(i=n;i>0;i--) {
for(j=0;j<n;j++) {
printf("%d ", lines[(i+j)%n]);
}
printf("\n");
}
}
3 的输出:
1 2 3
3 1 2
2 3 1
4 的输出:
1 2 3 4
4 1 2 3
3 4 1 2
2 3 4 1