Печать чисел в зигзагообразном порядке в массиве 2 D
#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 по какой-то причине, я не вхожу в цикл в состоянии флага, я хочу знать причину.. заранее спасибо
2 ответа
Вместо
for (j=2;j<0;j--){
использование
for (j=2;j>-1;j--){
и (только для хорошего форматирования) вместо
printf(" %d ",x[i][j]);
(ближе к концу, с пробелом после %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