配列の問題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
まるくま
記事: 39
登録日時: 7年前
住所: 群馬県

配列の問題

#1

投稿記事 by まるくま » 7年前

配列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]としてみてもエラーになってしまします(汗

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

jay
記事: 314
登録日時: 9年前
住所: 大阪市
連絡を取る:

Re: 配列の問題

#2

投稿記事 by jay » 7年前

それじゃあvbも配列にしてあげてください

ただの変数を配列みたいに使おうとしてるからエラーが出ているのです
♪僕たちは まだ森の中 抜け出そう 陽のあたる場所へ

box
記事: 1747
登録日時: 9年前

Re: 配列の問題

#3

投稿記事 by box » 7年前

まるくま さんが書きました:配列vaの要素の並びを逆順にしたものをvbにコピー
提示されたコードには、「va」という名前の配列が見当たりません。
まるくま さんが書きました:

コード:

		 vc[i]=vb[n];
これは、(配列を正しく定義したとして)「vbをvcに」コピーしています。
本当にそういうことがしたいのでしょうか。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

まるくま
記事: 39
登録日時: 7年前
住所: 群馬県

Re: 配列の問題

#4

投稿記事 by まるくま » 7年前

すみません、いろいろまちがえてました(汗

ちゃんと書いてみました

コード:

#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になってしまいます。
そのほかは異常ないです。

アバター
みけCAT
記事: 6281
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: 配列の問題

#5

投稿記事 by みけCAT » 7年前

n=5-i;ではなくて、n=5-i-1;です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: 配列の問題

#6

投稿記事 by softya(ソフト屋) » 7年前

デバッガを使いましょう。すぐわかります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

まるくま
記事: 39
登録日時: 7年前
住所: 群馬県

Re: 配列の問題

#7

投稿記事 by まるくま » 7年前

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);
 }

閉鎖

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