最終的には5×5の行列を1を入力すると縦に反転、0を入力すると横に反転するプログラムを作りたいです。自分としてはfor文使ってやればいいのかなと思っています。コンパイルは通ったのですが出力が意図したものと全く違います。最後の「不適切な数値が入力されました」は正しく動きます。
エラー内容
反転する方向を指定してください(縦:0、横:1)1
0
0
0
1
0
c
1#include<stdio.h> 2#define r 5 3#define c 5 4int main(){ 5int mat[r][c],mat2[r][c],mat3[r][c]; 6int i,j,assig; 7//要素 8int mat1[r][c]={{1,1,1,1,1},{0,1,1,1,1},{0,0,1,1,1},{0,0,0,1,1},{0,0,0,0,1}}; 9 10//行 11for(i=0;i<r;i++){ 12 for(j=0;j<c;j++){ 13 mat[i][j]=mat1[i][j]; 14 } 15 //printf("%d",mat[i][j]); 16} 17printf("反転する方向を指定してください(縦:0、横:1)"); 18scanf("%d",&assig); 19if(assig==0){ 20 //縦に反転 21for(i=4;i>=0;i--){ 22 for(j=4;j>=0;j--){ 23 mat2[i][j]=mat[i][j]; 24 } 25 printf("%d\n",mat2[i][j]); 26 27} 28} 29else if(assig==1){ 30 //横に反転 31for(j=4;j>=0;j--){ 32 for(i=4;i>=0;i--){ 33 mat3[i][j]=mat[i][j]; 34 } 35 printf("%d\n",mat3[i][j]); 36} 37} 38else{ 39 printf("不適切な数値が入力されました\n"); 40} 41 42return 0; 43}
回答2件
あなたの回答
tips
プレビュー