web-dev-qa-db-ja.com

Cでの2D配列の印刷

2D配列をcで出力するにはどうすればよいですかユーザー入力にscanfを使用し、grid [] []と呼ばれる配列とforループを使用しますか?

ユーザーが3 5と入力すると、出力は次のようになります。

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

これが私がこれまでに書いたコードです(初心者はこちら):

#include <stdio.h>

#define MAX 10

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

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

    for (i=0; i<MAX; i++)
        for //i gave up here


}

これは私の仕事の全段階のほんの一部です:

Enter number of rows and columns followed by list of words (hit enter twice to end list): 10 15
quick
brown
fox
jumped
over
lazy
dog

00  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
01  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
02  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
03  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
04  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
05  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
06  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
07  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
08  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
09  .  .  .  .  .  .  .  .  .  .  .  .  .  .  . 
    0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 
  0. quick
  1. brown
  2. fox
  3. jumped
  4. over
  5. lazy
  6. dog

許可され、コードに含める必要がある関数:文字列関数-strlen()、strcpy()、strcat()、strchr()、strcmp()、strstr()

2D配列を使用する必要があります

単語にはfgetsを使用する必要があります。出力は正確な形式と一致する必要があります。

12
wello horld

これは役に立ちますか?

#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;
}
12
NomeN
...
for(int i=0;i<3;i++){ //Rows
for(int j=0;j<5;j++){ //Cols
 printf("%<...>\t",var);
}
printf("\n");
}
...

<...>がd、e、f、s、c ...などのデータ型であることを考慮して... X)

0
pojomx

最初に、おそらくargcとargvを使用して、num_rowsとnum_columnsの2つの数値を入力する必要があります。次に、forループを実行してドットを出力します。

int j=0;
int k=0;
for (k=0;k<num_columns;k++){
   for (j=0;j<num_rows;j++){
       printf(".");
   }
 printf("\n");
 }

ドットを後で別のものに置き換える必要があります。

0
shuttle87