2010-04-30 3 views
0

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

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

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

#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. 

Любой т houghts о том, как изменить код для этого?

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

+0

Возможно, вам лучше попытаться запрограммировать немного своей домашней работы для себя. Просить о том, чтобы каждый маленький твитт вашего задания не помог вам чему-либо научиться. – NomeN

ответ

0
#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; 
} 
+0

Напоминаем, что вы смешивали «ряд» и «столбец» в приведенных примерах. – Zhaojun

+0

Кроме того, для простоты я не выполнял никаких пограничных проверок для «слова», введенного пользователем. Но это небезопасно, поэтому вы должны принять это во внимание, когда используете его в реальности. – Zhaojun

Смежные вопросы