fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. // 必要があれば変数などを追加してもOKです
  5.  
  6. int main() {
  7. int i, j, k;
  8. int a, b;
  9. int **mat; // 二次元配列へのポインタ
  10.  
  11. // 行数aと列数bの入力
  12. scanf("%d %d", &a, &b);
  13.  
  14. // 2次元配列の動的確保
  15. mat = (int**)malloc(sizeof(int*) * a); // 行ポインタの配列を確保
  16.  
  17. for (i = 0; i < a; i++) {
  18. mat[i] = (int*)malloc(sizeof(int) * b); // 各行の列を確保
  19. }
  20.  
  21. // 2次元配列に1から順番に数値を代入する
  22. int current = 1; // 1から始める
  23. for (i = 0; i < a; i++) {
  24. for (j = 0; j < b; j++) {
  25. mat[i][j] = current++;
  26. }
  27. }
  28.  
  29. // 表示の部分
  30. for (i = 0; i < a; i++) {
  31. for (j = 0; j < b; j++) {
  32. printf("%d ", mat[i][j]);
  33. }
  34. printf("\n");
  35. }
  36.  
  37. // 動的に確保したメモリの解放
  38. for (i = 0; i < a; i++) {
  39. free(mat[i]); // 各行のメモリを解放
  40. }
  41. free(mat); // 行ポインタの配列を解放
  42.  
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 5268KB
stdin
2 3
stdout
1 2 3 
4 5 6