замена элементов по горизонтали и вертикали в двумерном массиве - PullRequest
0 голосов
/ 30 апреля 2010

код ниже запрашивает ввод пользователя для размера 2D-массива и печатает что-то вроде этого: (скажем, сетка 18x6)

..................
..................
..................
..................
..................
..................

код начинается здесь:

#include <stdio.h>

#define MAX 10

int main()
{
    char grid[MAX][MAX];
    int i,j,row,col;

    printf("Please enter your grid size: ");
    scanf("%d %d", &row, &col);


    for (i = 0; i < row; i++) {
        for (j = 0; j < col; j++) {
            grid[i][j] = '.';
            printf("%c ", grid[i][j]);
        }
        printf("\n");
    }

    return 0;
}

Теперь я спрашиваю у пользователя строку, а затем спрашиваю, куда ее поместить, например:

Please enter grid size: 18 6
Please enter word: Hello
Please enter location: 0 0
Output:
Hello.............
..................
..................
..................
..................
..................
Please enter location: 3 4
Output:
..................
..................
..................
..Hello...........
..................
..................
program just keeps going.

Есть мысли о том, как изменить код для этого?

PS: Вертикаль кажется очень сложной, но сначала я хочу начать с горизонтали, чтобы было над чем поработать.

1 Ответ

0 голосов
/ 30 апреля 2010
#include <stdio.h>
#include <string.h>

#define MAX 10

int main()
{
    char grid[MAX][MAX];
    int  i,j,row, col;
    char word[MAX];
    int  row_w,col_w;
    int  word_len;

    printf("Please enter your grid size: ");
    scanf("%d %d", &row, &col);

    printf("Please enter word: ");
    scanf("%s", word);
    word_len = strlen(word);

    printf("Please enter location: ");
    scanf("%d %d", &row_w, &col_w);

    for (i = 0; i < row; i++) {
        for (j = 0; j < col; j++) {
            grid[i][j] = '.';
        }
    }

    for (j = col_w; j < col_w + word_len; j ++) {
        grid[row_w][j] = word[j - col_w];
    }

    for (i = 0; i < row; i++) {
        for (j = 0; j < col; j++) {
            printf("%c ", grid[i][j]);
        }
        printf("\n");
    }

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...