fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main() { int rows, cols;
  4. // 行数と列数の入力
  5. printf("行数を入力してください: ");
  6. scanf("%d", &rows);
  7. printf("列数を入力してください: ");
  8. scanf("%d", &cols);
  9. // 二次元配列の動的メモリ確保
  10. int **matrix = (int **)malloc(rows * sizeof(int *));
  11. for (int i = 0; i < rows; i++) {
  12. matrix[i] = (int *)malloc(cols * sizeof(int)); }
  13. // メモリ確保のチェック
  14. if (matrix == NULL) {
  15. printf("メモリ確保に失敗しました。\n");
  16. return 1;}
  17. // 各要素の数値入力
  18. printf("\n--- 各要素の数値を入力してください ---\n");
  19. for (int i = 0; i < rows; i++) {
  20. for (int j = 0; j < cols; j++) {
  21. printf("要素 [%d][%d]: ", i, j);
  22. scanf("%d", &matrix[i][j]);}}
  23. // 入力された二次元配列の表示
  24. printf("\n--- 入力された二次元配列 ---\n");
  25. for (int i = 0; i < rows; i++) {
  26. for (int j = 0; j < cols; j++) {
  27. printf("%d\t", matrix[i][j]);}
  28. printf("\n");}
  29. //解放処理
  30. for (int i = 0; i < rows; i++) {
  31. free(matrix[i]);}
  32. free(matrix);
  33. return 0;}
  34.  
Success #stdin #stdout 0s 5284KB
stdin
5
5
10
-2
0
0
0
-2
9
-1
0
0
0
-1
8
-2
0
0
0
-2
7
-1
0
0
0
-1
5
stdout
行数を入力してください: 列数を入力してください: 
--- 各要素の数値を入力してください ---
要素 [0][0]: 要素 [0][1]: 要素 [0][2]: 要素 [0][3]: 要素 [0][4]: 要素 [1][0]: 要素 [1][1]: 要素 [1][2]: 要素 [1][3]: 要素 [1][4]: 要素 [2][0]: 要素 [2][1]: 要素 [2][2]: 要素 [2][3]: 要素 [2][4]: 要素 [3][0]: 要素 [3][1]: 要素 [3][2]: 要素 [3][3]: 要素 [3][4]: 要素 [4][0]: 要素 [4][1]: 要素 [4][2]: 要素 [4][3]: 要素 [4][4]: 
--- 入力された二次元配列 ---
10	-2	0	0	0	
-2	9	-1	0	0	
0	-1	8	-2	0	
0	0	-2	7	-1	
0	0	0	-1	5