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. scanf("%d %d",&a,&b);
  11.  
  12. //ここで2次元配列の動的確保をする
  13. mat=(int **)malloc(sizeof(int *)*a);
  14. if(mat==NULL){
  15. printf("ERROR\n");
  16. return 0;
  17. }
  18. for(i=0;i<a;i++){
  19. mat[i]=(int *)malloc(sizeof(int)*b);
  20. if(mat[i]==NULL){
  21. printf("ERROR\n");
  22. return 0;
  23. }
  24. }
  25.  
  26. //ここで2次元配列に数値を代入する
  27. k=1;
  28. for(i=0;i<a;i++){
  29. for(j=0;j<b;j++){
  30. mat[i][j]=k++; //mat[i][j]=i*b+j+1となぜ同じになるのかが分からないです
  31. }
  32. }
  33.  
  34.  
  35. //以下の部分は表示の部分です
  36. //いじらなくてOK
  37. for(i=0;i<a;i++){
  38. for(j=0;j<b;j++){
  39. printf("%d ",mat[i][j]);
  40. }
  41. printf("\n");
  42. }
  43.  
  44. //さて,最後に忘れずにすることと言えば?
  45. for(i=0;i<a;i++){
  46. free(mat[i]);
  47. }
  48. free(mat);
  49.  
  50. return 0;
  51. }
  52.  
Success #stdin #stdout 0s 5532KB
stdin
2 3
stdout
1 2 3 
4 5 6