ポインタを使った行列の和算プログラムとして以下のようなコードを組みました
c
1#include<stdio.h> 2int main(void){ 3 4 int c[2][3]={{4,11,-5},{10.2,-2}}; 5 int d[2][3]={{1,13,-1},{4,1,0}}; 6 7 int *pc,*pd,i,j; 8 9 pc=&c[0][0]; 10 pd=&d[0][0]; 11 12 printf("[matrix C+D]\n"); 13 for(i=0;i<2;i++){ 14 for(j=0;j<3;j++){ 15 printf("(C+D)[%d][%d]=%2d\n",i,j,(*(pc+3*i+j))+(*(pd+3*i+j))); 16 } 17 printf("\n"); 18 } 19 20 return 0; 21} 22 23
上のコードではc[0][0]+d[0][0]~c[1][0]+d[1][0]までの計算は正しくできているようなのですが、なぜか
c[1][1]+d[1][1],c[1][2]+d[1][2]の計算が正しくできません
(さらにいえば、c[1][0]+d[1][0]のあとになぜかc[1][2]+d[1][1]が計算されているみたいです)
自分では解決できなかったのでご教授お願いします
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/21 02:09