私は、ユーザーが最初にマトリックスのサイズを入力し、次に各セルが占有されている(o)か占めていない(。)かを入力しようとしています。入れ子になったforループを使用して、セルごとではなく、占有/非占有の入力行全体をユーザーが入力するように、どのように記述しますか?C - マトリックスへのユーザー入力
UPDATE
アイテムは、1つずつ入力される例がある:
#include <stdio.h>
#define MAX_SIZE 100
int main(void)
{
char matrix[MAX_SIZE][MAX_SIZE] = { 0 };
int rows = 0, cols = 0;
while (rows < 1 || rows > MAX_SIZE)
{
printf("What is the number of rows? ");
scanf("%d", &rows);
}
while (cols < 1 || cols > MAX_SIZE)
{
printf("What is the number of columns? ");
scanf("%d", &cols);
}
// fill the matrix
printf("Please, fill the matrix by entering o for occupied or . for unoccupied cell (E for exit)\n");
int r, c, ch;
int fulfill = 1;
for (r = 0; r < rows && fulfill; r++)
{
for (c = 0; c < cols && fulfill; c++)
{
// clean the input bufer
while ((ch = getchar()) != '\n' && ch != EOF);
// read data
printf("cell [%d, %d] : ", r + 1, c + 1); // or just r, c if you prefer 0..(N-1) indexing
while (matrix[r][c] != 'o' && matrix[r][c] != '.' && matrix[r][c] != 'E')
{
scanf("%c", &matrix[r][c]);
}
if (matrix[r][c] == 'E')
{
fulfill = 0;
}
}
}
// output
printf("\nResult is:\n");
for (r = 0; r < rows; r++)
{
for (c = 0; c < cols; c++)
{
printf("%c", matrix[r][c]);
}
printf("\n");
}
}
ようこそスタックオーバーフロー!これまでのところあなたの研究/デバッグの努力を示してください。まず[Ask]ページをお読みください。 –