ページ 11

表示できない?

Posted: 2012年1月26日(木) 15:37
by 緋色
行列を計算しようとしたんですが失敗してしまいました…。
どうしてしまったのでしょうか?至急解決お願いします。

ソース

#include <stdio.h>

int main (void)

{
int i,j;
int A[100][100];
int B[100][100];
int C[100][100];
int n=100;
int m=100;

for(i=0;i<n;i++);
{
for(j=0;j<m;m++);
{
C[j]=A[j]+B[j];

}
}

for(i=0;i<n;i++);
{
for(j=0;j<m;m++);
{
printf("%d",C[j]);

}
printf("%d");
}



}

Re: 表示できない?

Posted: 2012年1月26日(木) 15:59
by non
1 forの行の最後にあるセミコロン
2 for(j=0;j<m;m++);
 m++

Re: 表示できない?

Posted: 2012年1月26日(木) 16:03
by 沖 滉均
まずフォーラムルールを読んでくださいね。
コードは必ずcodeタグで括って下さい。

で、色々ツッコミどころがいっぱいです。

コード:

#include <stdio.h>

int main (void)

{
	int i,j;
	int A[100][100];
	int B[100][100];
	int C[100][100];
	int n=100;
	int m=100;

	for(i=0;i<n;i++);
	{
		for(j=0;j<m;m++);
		{
			C[i][j]=A[i][j]+B[i][j];

		}
	}

	for(i=0;i<n;i++);
	{
		for(j=0;j<m;m++);
		{
			printf("%d",C[i][j]);

		}
		printf("%d");
	}



}
そのままフォーマットだけしてコピペしてますが
まず13,15,22,24行目のfor文の後ろにセミコロンがついてますが、{}をループで回しているつもりなら間違いです。
for文の使い方を再確認してみてください。

また、15,24行目のfor文

コード:

for(j=0;j<m;m++);
jではなく終了条件に指定しているmをインクリメントしているのは間違いでしょう。
これではいつまで経っても(mがsigned int maxを超えるまで)ループし続けてしまいます。
for文が正しかったとしたら配列の範囲外アクセスをしてしまうでしょう。

最後に、A,Bはいつ初期化するの?
初期化せずにA[j]+B[j]としてるので不定値の加算をしてるだけです。

Re: 表示できない?

Posted: 2012年1月26日(木) 16:03
by 緋色
解決ありがとうございました(m^^m)

Re: 表示できない?

Posted: 2012年1月26日(木) 17:31
by bitter_fox
printf("%d");も良くありませんね。
printf("\n");でしょうか?

Re: 表示できない?

Posted: 2012年1月26日(木) 17:33
by asd
緋色 さんが書きました:解決ありがとうございました(m^^m)
どう解決したのでしょうか?
貴方自身は疑問が氷解してすっきりかもしれませんが、
見ているこちらではどのように解決したのか分からず、非常に気持ち悪いです。

後から同じような間違いで困っている人が参照した際に参考になるよう、
無事に解決したのであればお礼だけではなく解決後のソースを貼るなりしてください。

#回答を書かれた方たちのツッコミが図星なのだとは思いますが。

Re: 表示できない?

Posted: 2012年1月27日(金) 21:24
by みけCAT
解決でしたら、解決チェックをお願いします。
asdさんがおっしゃっているように、どのように解決したのかも書き込んでください。