ページ 11

配列の問題

Posted: 2013年3月23日(土) 20:27
by まるくま
配列vaの要素の並びを逆順にしたものをvbにコピー

という問題で、プログラムを書いてみたところ

コード:

#include <stdio.h>

 int main(void)
 {
	 int i, n;
	 int vc[5]={15, 20, 30};
	 int vb;

	 for(i=0; i<5; i++){
		 n=5-i;
		 vc[i]=vb[n];
	 }

	 for(i=0; i<5; i++){
		 printf("vc[%d] = %d\n", i, vc[i]);
	 }
	 return(0);
 }
としてみましたが
for(i=0; i<5; i++){
n=5-i;
vc=vb[n];
の部分でエラーがでてしまいます。 nが原因らしいですがエラーになる理由がわかりません(´・ω・`)
vb[5-i]としてみてもエラーになってしまします(汗

どなたかお助けを・・・・

Re: 配列の問題

Posted: 2013年3月23日(土) 20:33
by jay
それじゃあvbも配列にしてあげてください

ただの変数を配列みたいに使おうとしてるからエラーが出ているのです

Re: 配列の問題

Posted: 2013年3月23日(土) 20:46
by box
まるくま さんが書きました:配列vaの要素の並びを逆順にしたものをvbにコピー
提示されたコードには、「va」という名前の配列が見当たりません。
まるくま さんが書きました:

コード:

		 vc[i]=vb[n];
これは、(配列を正しく定義したとして)「vbをvcに」コピーしています。
本当にそういうことがしたいのでしょうか。

Re: 配列の問題

Posted: 2013年3月23日(土) 20:59
by まるくま
すみません、いろいろまちがえてました(汗

ちゃんと書いてみました

コード:

#include <stdio.h>

 int main(void)
 {
	 int i, n;
	 int va[5]={15, 20, 30};
	 int vb[5];

	 for(i=0; i<5; i++){
		 n=5-i;
		 vb[n]=va[i];
	 }

	 puts(" va vb");
	 puts("-------");
	 for(i=0; i<5; i++){
		 printf("%3d%3d\n", va[i], vb[i]);
	 }
	 
	 
	 return(0);
 }
ですが vb[0]の値が-858998430になってしまいます。
そのほかは異常ないです。

Re: 配列の問題

Posted: 2013年3月23日(土) 21:01
by みけCAT
n=5-i;ではなくて、n=5-i-1;です。

Re: 配列の問題

Posted: 2013年3月23日(土) 21:01
by softya(ソフト屋)
デバッガを使いましょう。すぐわかります。

Re: 配列の問題

Posted: 2013年3月23日(土) 21:20
by まるくま
jayさん、boxさん、みけCATさん、softyaさん、ありがとうございます。
だいぶすっきりしたと思います。

コード:

#include <stdio.h>

 int main(void)
 {
	 int i, n;
	 int va[5]={15, 20, 30};
	 int vb[5];

	 for(i=0; i<5; i++){
		 vb[4-i]=va[i];
	 }

	 puts(" va vb");
	 puts("-------");
	 for(i=0; i<5; i++){
		 printf("%3d%3d\n", va[i], vb[i]);
	 }
	 
	 
	 return(0);
 }