首页 > 解决方案 > 二维数组和for循环

问题描述

我做了这段代码来尝试对二维数组(二维数组)的基本操作,但它没有在屏幕上打印字母“A”。有人可以帮我解决这个问题吗?谢谢

#include <stdio.h>

#define ROWS  2
#define COLS  3

int main()
{
    int x; 
    int y; 
    int i; 
    int j;
    int Field[ROWS][COLS];

    printf("Enter two values: ");
    scanf("%d %d", &x, &y);
    Field[y][x] = 1;

    for(i = ROWS - 1; i > 0; i--){
        for(j = 0; j < COLS; j++){
            if(Field[i][j] == 1){
            printf("A");
            }
        }
    }
    return 0;

}

标签: carraysloopsfor-loop

解决方案


这:for(i = ROWS - 1; i > 0; i--){无法遍历必要的数组位置,并且没有清楚地向您的软件的未来维护者传达究竟是什么意图。

但是,要执行您在问题描述中描述的内容,除非有令人信服的理由来设置递减索引--++

for(i = 0; i < ROWS; i++)
{
    for(j = 0; j < COLS; j++)
    {
        if(Field[i][j] == 1)
        {
            printf("A");
        }
    }
}

推荐阅读