#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我不会在标志状态下进入循环我想知道原因。提前谢谢
答案 0 :(得分:1)
而不是
for (j=2;j<0;j--){
使用
for (j=2;j>-1;j--){
和(仅用于良好的格式化)而不是
printf(" %d ",x[i][j]);
(接近结尾,使用%d
之后的空格)
printf(" %d",x[i][j]);
(没有那个空格)。
答案 1 :(得分:0)
试试这个,它会为你提供你想要的输出。
#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