#include <stdio.h>
#include <stdlib.h> // mallocとfreeを使うために必要です
int main() {
int rows, cols;
// 1. 行数と列数の入力
if (scanf("%d", &rows
) != 1) return 1;
if (scanf("%d", &cols
) != 1) return 1;
// 2. どんな環境でもエラーにならない「動的メモリ確保」による2次元配列の作成
double **matrix
= (double **)malloc(rows
* sizeof(double *)); if (matrix == NULL) {
return 1;
}
for (int i = 0; i < rows; i++) {
matrix
[i
] = (double *)malloc(cols
* sizeof(double)); if (matrix[i] == NULL) {
return 1;
}
}
// 3. 各要素に数値を入力
printf("\n%d行 %d列の行列の要素を入力してください:\n", rows
, cols
); for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("要素 [%d][%d]: ", i
+ 1, j
+ 1); if (scanf("%lf", &matrix
[i
][j
]) != 1) return 1; }
}
// 4. 入力された2次元配列を表示
printf("\n--- 入力された2次元配列 ---\n"); for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%g\t", matrix
[i
][j
]); // \tで列を綺麗に揃えます }
}
// 5. 使い終わったメモリを綺麗に片付ける(解放)
for (int i = 0; i < rows; i++) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4gLy8gbWFsbG9j44GoZnJlZeOCkuS9v+OBhuOBn+OCgeOBq+W/heimgeOBp+OBmQoKaW50IG1haW4oKSB7CiAgICBpbnQgcm93cywgY29sczsKCiAgICAvLyAxLiDooYzmlbDjgajliJfmlbDjga7lhaXlipsKICAgIHByaW50Zigi6KGM5pWw44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOiAiKTsKICAgIGlmIChzY2FuZigiJWQiLCAmcm93cykgIT0gMSkgcmV0dXJuIDE7CiAgICAKICAgIHByaW50Zigi5YiX5pWw44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOiAiKTsKICAgIGlmIChzY2FuZigiJWQiLCAmY29scykgIT0gMSkgcmV0dXJuIDE7CgogICAgLy8gMi4g44Gp44KT44Gq55Kw5aKD44Gn44KC44Ko44Op44O844Gr44Gq44KJ44Gq44GE44CM5YuV55qE44Oh44Oi44Oq56K65L+d44CN44Gr44KI44KLMuasoeWFg+mFjeWIl+OBruS9nOaIkAogICAgZG91YmxlICoqbWF0cml4ID0gKGRvdWJsZSAqKiltYWxsb2Mocm93cyAqIHNpemVvZihkb3VibGUgKikpOwogICAgaWYgKG1hdHJpeCA9PSBOVUxMKSB7CiAgICAgICAgcHJpbnRmKCLjg6Hjg6Ljg6rnorrkv53jgavlpLHmlZfjgZfjgb7jgZfjgZ/jgIJcbiIpOwogICAgICAgIHJldHVybiAxOwogICAgfQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dzOyBpKyspIHsKICAgICAgICBtYXRyaXhbaV0gPSAoZG91YmxlICopbWFsbG9jKGNvbHMgKiBzaXplb2YoZG91YmxlKSk7CiAgICAgICAgaWYgKG1hdHJpeFtpXSA9PSBOVUxMKSB7CiAgICAgICAgICAgIHByaW50Zigi44Oh44Oi44Oq56K65L+d44Gr5aSx5pWX44GX44G+44GX44Gf44CCXG4iKTsKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgfQogICAgfQoKICAgIC8vIDMuIOWQhOimgee0oOOBq+aVsOWApOOCkuWFpeWKmwogICAgcHJpbnRmKCJcbiVk6KGMICVk5YiX44Gu6KGM5YiX44Gu6KaB57Sg44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOlxuIiwgcm93cywgY29scyk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHJvd3M7IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgY29sczsgaisrKSB7CiAgICAgICAgICAgIHByaW50Zigi6KaB57SgIFslZF1bJWRdOiAiLCBpICsgMSwgaiArIDEpOwogICAgICAgICAgICBpZiAoc2NhbmYoIiVsZiIsICZtYXRyaXhbaV1bal0pICE9IDEpIHJldHVybiAxOwogICAgICAgIH0KICAgIH0KCiAgICAvLyA0LiDlhaXlipvjgZXjgozjgZ8y5qyh5YWD6YWN5YiX44KS6KGo56S6CiAgICBwcmludGYoIlxuLS0tIOWFpeWKm+OBleOCjOOBnzLmrKHlhYPphY3liJcgLS0tXG4iKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcm93czsgaSsrKSB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb2xzOyBqKyspIHsKICAgICAgICAgICAgcHJpbnRmKCIlZ1x0IiwgbWF0cml4W2ldW2pdKTsgLy8gXHTjgafliJfjgpLntrrpupfjgavmj4PjgYjjgb7jgZkKICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQoKICAgIC8vIDUuIOS9v+OBhOe1guOCj+OBo+OBn+ODoeODouODquOCkue2uum6l+OBq+eJh+S7mOOBkeOCi++8iOino+aUvu+8iQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCByb3dzOyBpKyspIHsKICAgICAgICBmcmVlKG1hdHJpeFtpXSk7CiAgICB9CiAgICBmcmVlKG1hdHJpeCk7CgogICAgcmV0dXJuIDA7Cn0=