こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

配列の計算の仕方

Memo1には   Memo2には
 5        3
 6        4
 7        9
 8        8
 9        3
10        8

と、書かれてありこのメモ帳二つの平均値を配列としてMemo3に
  4
  5
  8
  6
  9
というように出したいのですが、どのようにすればよいのでしょうか・・
Cに関して全然わかっていないので、どなたか形だけでもアドバイス
お願いします。

投稿日時 - 2008-10-06 17:06:57

QNo.4381869

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

私もC言語初心者ですが、サンプルソースを書いてみましたので、よろしければ参考にしてください。

#include<stdio.h>
main()
{
/*変数宣言*/
int Memo1[]={5,6,7,8,9,10};
int Memo2[]={3,4,9,8,3,8};
int Memo3[]={0,0,0,0,0,0};
int i;

/*Memo1とMemo2の表示*/
printf("Memo1 Memo2\n");
for(i=0;i<=5;i++){
printf(" %d %d \n",Memo1[i],Memo2[i]);
}

/*平均を計算してMemo3に入れる*/
for(i=0;i<=5;i++){
Memo3[i]=(Memo1[i]+Memo2[i])/2;
}

/*Memo3の表示*/
printf("Memo3\n");
for(i=0;i<=5;i++){
printf(" %d\n",Memo3[i]);
}
return 0;
}


実行結果
 Memo1     Memo2
 5        3
 6        4
 7        9
 8        8
 9        3
 10        8

 Memo3
  4
  5
  8
  6
  9
続行するには何かキーを押してください。。。

投稿日時 - 2008-10-20 23:19:40

ANo.3

本文からは全角の2桁でスペース詰め物の右詰と読めるのですが、この理解でよろしいでしょうか?
全角の処理(特に数値にして計算)は半角に比べて面倒ですので、避けるのが無難と思いますが。

それとも、改行で区切る詰め物なしの半角でいいのでしょうか?
そうなのであれば、Cでは半角と全角で扱いが大きく異なります。細かい部分ですが、違うものは違うものですので、正確に書いてください。

また、配列としてとありますが、プログラム中で配列を利用したいのですか? 使わないほうが楽だと思うのですが・・・。

せっかくなので配列を使わない場合の重要部分の擬似コード
--------------------------------------------

バッファ1にMemo1から読み込み
バッファ2にMemo2から読み込み
while 両方読み込めたか? {
  平均値を計算
  Memo3に書き出し
  バッファ1にMemo1から読み込み
  バッファ2にMemo2から読み込み
}
-----------------------------------------
まあ、あとはファイル入出力関数を調べながらがんばってください。

投稿日時 - 2008-10-07 01:38:22

ANo.2

> 二つの平均値

提示されたデータでは、たまたま2数の和が偶数のケースばかりです。
和が奇数の場合は、平均値をどういう風に出力したいですか?

投稿日時 - 2008-10-06 21:07:14

ANo.1

ファイルI/Oの部分と配列計算の部分を分けて考えた方が楽でしょう。
まずはループを用いて配列1と配列2の各要素の平均値を標準出力に出すところから始めてはどうかと。
#コードはあえて一切書きません

投稿日時 - 2008-10-06 17:58:10

あなたにオススメの質問