実行結果にアドレス(?)のようなものがでてしまいます…

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
asahi

実行結果にアドレス(?)のようなものがでてしまいます…

#1

投稿記事 by asahi » 8年前

二次元配列を使い,キーボードから値を読み込んで行列を作り,転置行列にして表示しなさい,というプログラムを作っているのですがうまくいきません…。
どうすればいいのかすらよくわからなかったため,ネットで検索していくつかのサイトに頼り,つぎはぎのようなプログラムができました。
自分でも意味はよくわかっていません。やっとコンパイルエラーがでないところまではこぎつけたのですが…。
実行結果が数字まみれになってしまいます。助けてください…。

ソースプログラム
#include <stdio.h>

void tenti(int a,int b,int n[5][5],int m[5][5]);

int main(void)
{
int n[5][5],m[5][5];
int i,j,a=5,b=5;


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

tenti(a,b,m,n);

for(i=0;i<a;i++){
for(j=0;j<b;j++){
printf("%3.0d",n[j]);
}
printf("\n");
}

printf("\n");

for(i=0;i<a;i++){
for(j=0;j<b;j++){
printf("%3.0d",m[j]);
}
printf("\n");
}
return(0);
}

void tenti(int a,int b,int n[5][5],int m[5][5])
{
int i,j;
for(i=0;i<5;i++){
for(j=0;j<5;j++){
m[j]=n[j];
}
}
}

実行結果
$ ./tenti.out
n[0][0]:1
n[0][1]:2
n[0][2]:3
n[0][3]:4
n[0][4]:5
n[1][0]:6
n[1][1]:7
n[1][2]:8
n[1][3]:9
n[1][4]:1
n[2][0]:2
n[2][1]:3
n[2][2]:4
n[2][3]:5
n[2][4]:6
n[3][0]:7
n[3][1]:8
n[3][2]:9
n[3][3]:1
n[3][4]:2
n[4][0]:3
n[4][1]:4
n[4][2]:5
n[4][3]:6
n[4][4]:7
2268435456163032332864092646409264
1629027232 1629714752 11628785944
641270064092641630324288 21629205056
1629714752 2163032422416303233281630323328
163032428816290272321629002848 6409264

21629027232641270016297147521630324288
268435456 6409264 21629027232
16303233281629714752163032428816303242241629002848
6409264 1 21630323328
64092641628785944162920505616303233286409264

こんなかんじです…

アバター
usao
記事: 1889
登録日時: 12年前
連絡を取る:

Re: 実行結果にアドレス(?)のようなものがでてしまいます…

#2

投稿記事 by usao » 8年前

a,b,mだのnだの,意味のわからない変数名にするから
取り違えが起きたりするんじゃないでしょうか.

一度,自分自身にとって意味のわかる明確な名前に付け直してみては?

かずま

Re: 実行結果にアドレス(?)のようなものがでてしまいます…

#3

投稿記事 by かずま » 8年前

tenti(a,b,m,n); は、m と n が逆になっていますよ。

返信

“C言語何でも質問掲示板” へ戻る