[英]Printing numbers in zigzag order in 2 D array
#include <stdio.h>
int main(){
int i,j;
int flag = 0;
int x [3][3] = {{1,2,3},{4,5,6},{7,8,9}};
for (i = 0;i<3;i++){
if (flag ==1){
for (j=2;j<0;j--){
printf(" %d",x[i][j]);
}
flag =0;
}
else {
for (j=0;j<3;j++)
{
printf(" %d ",x[i][j]);
}
flag =1;
}
}
return 0;
}
我试图以锯齿形形式打印数组中的数字,预期输出应为123654789,但由于某种原因我得到的所有123789我没有在标志条件下进入循环,我想知道原因..在此先感谢
代替
for (j=2;j<0;j--){
采用
for (j=2;j>-1;j--){
和(仅用于美观的格式)而不是
printf(" %d ",x[i][j]);
(在末尾附近,在%d
后%d
一个空格)使用
printf(" %d",x[i][j]);
(没有该空间)。
试试这个,它将为您提供所需的输出。
#include <stdio.h>
int main(){
int i,j;
int flag = 0;
int x [3][3] = {{1,2,3},{4,5,6},{7,8,9}};
for (i = 0;i<3;i++){
if (flag ==1){
for (j=2;!(j<0);j--){
printf(" %d",x[i][j]);
}
flag =0;
} else {
for (j=0;j<3;j++) {
printf(" %d",x[i][j]);
}
flag =1;
}
}
return 0;
}
输出:
./a.out 1 2 3 6 5 4 7 8 9
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.