iT邦幫忙

1

C語言 問題請教

c

最近剛學C語言學到陣列
在寫內積相乘的問題時
發現輸入後卻跑不出輸出
請問可以怎樣修正呢?
#include<stdio.h>

main()
{
int a[2][3],b[3][4],c[2][4];
int i, j, k;

for (i=0;i<2;i++)
	for(j=0;j<3;j++)
		scanf("%d",&(a[i][j]));

for (j=0;j<3;i++)
	for(k=0;k<4;k++)
		scanf("%d",&(b[j][k]));		

for (i=0;i<2;i++)
	for(k=0;k<4;k++)
		c[i][k]=0;

for (i=0;i<2;i++)
	for(k=0;k<4;k++)
		for(j=0;j<3;j++)
			c[i][k]+=a[i][j]*b[j][k];
				
for (i=0;i<2;i++)
	for(k=0;k<4;k++)				
		printf("%4d",c[i][k]);
			printf("\n");
	
return 0;

}

小魚 iT邦好手 1 級 ‧ 2018-05-13 08:41:15 檢舉
這樣看看不大出問題,
可以直接貼原始碼上來嗎?
這樣不好複製...
royhu iT邦新手 5 級 ‧ 2018-05-13 14:06:49 檢舉

2 個回答

3
小魚
iT邦好手 1 級 ‧ 2018-05-13 16:39:09
最佳解答

抓到問題了,

for (j=0;j<3;i++)

改成

for (j=0;j<3;j++)

就好了,
有沒有發現哪裡不一樣?

你這樣子不容易除錯,
我幫你加了兩個printf,
再改一下顯示的方式,
看起來比較像矩陣。

	int a[2][3],b[3][4],c[2][4];
	int i, j, k;

	for (i=0;i<2;i++)
		for(j=0;j<3;j++)
		{
			printf("a[%d][%d] = ",i,j);
			scanf("%d",&(a[i][j]));
		}

	for (j=0;j<3;j++)
		for(k=0;k<4;k++)
		{
			printf("b[%d][%d] = ",j,k);
			scanf("%d",&(b[j][k]));		
		}

	for (i=0;i<2;i++)
		for(k=0;k<4;k++)
			c[i][k]=0;

	for (i=0;i<2;i++)
		for(k=0;k<4;k++)
			for(j=0;j<3;j++)
				c[i][k]+=a[i][j]*b[j][k];
				
	for (i=0;i<2;i++)
	{
		for(k=0;k<4;k++)				
			printf("%4d",c[i][k]);
		printf("\n");
	}
	printf("\n");

這是執行結果
https://ithelp.ithome.com.tw/upload/images/20180513/201056943QtNYvqHdo.jpg

看更多先前的回應...收起先前的回應...
royhu iT邦新手 5 級 ‧ 2018-05-13 16:43:01 檢舉

原來是我自己粗心...
謝謝幫忙解惑

小魚 iT邦好手 1 級 ‧ 2018-05-13 16:49:21 檢舉

記得最佳解答
/images/emoticon/emoticon39.gif

畢竟是人,打錯字很正常!這時就要選對好的IDE! XD

小魚 iT邦好手 1 級 ‧ 2018-05-14 11:55:31 檢舉

我覺得自己在程式中埋一些東西比較好Debug,
IDE能做的還是有限...

0
海綿寶寶
iT邦超人 1 級 ‧ 2018-05-13 10:40:49

C 語言
副檔名是 cpp

會不會是拿明朝的劍來斬清朝的官呀
/images/emoticon/emoticon06.gif

麻煩你說一下
你用什麼 C compiler
或者用什麼 IDE / 編輯器

小魚 iT邦好手 1 級 ‧ 2018-05-13 11:05:41 檢舉

看起來是還好,
都是簡單的語法而已...

royhu iT邦新手 5 級 ‧ 2018-05-13 14:06:40 檢舉

dev c++

我要發表回答

立即登入回答