- 締切済み
配列の計算の仕方
Memo1には Memo2には 5 3 6 4 7 9 8 8 9 3 10 8 と、書かれてありこのメモ帳二つの平均値を配列としてMemo3に 4 5 8 6 9 というように出したいのですが、どのようにすればよいのでしょうか・・ Cに関して全然わかっていないので、どなたか形だけでもアドバイス お願いします。
- mosamosa96
- お礼率14% (1/7)
- C・C++・C#
- 回答数4
- ありがとう数0
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- tenzoukun
- ベストアンサー率0% (0/0)
私も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 続行するには何かキーを押してください。。。
- S117
- ベストアンサー率40% (18/45)
本文からは全角の2桁でスペース詰め物の右詰と読めるのですが、この理解でよろしいでしょうか? 全角の処理(特に数値にして計算)は半角に比べて面倒ですので、避けるのが無難と思いますが。 それとも、改行で区切る詰め物なしの半角でいいのでしょうか? そうなのであれば、Cでは半角と全角で扱いが大きく異なります。細かい部分ですが、違うものは違うものですので、正確に書いてください。 また、配列としてとありますが、プログラム中で配列を利用したいのですか? 使わないほうが楽だと思うのですが・・・。 せっかくなので配列を使わない場合の重要部分の擬似コード -------------------------------------------- バッファ1にMemo1から読み込み バッファ2にMemo2から読み込み while 両方読み込めたか? { 平均値を計算 Memo3に書き出し バッファ1にMemo1から読み込み バッファ2にMemo2から読み込み } ----------------------------------------- まあ、あとはファイル入出力関数を調べながらがんばってください。
- asuncion
- ベストアンサー率33% (2126/6288)
> 二つの平均値 提示されたデータでは、たまたま2数の和が偶数のケースばかりです。 和が奇数の場合は、平均値をどういう風に出力したいですか?
- D-Matsu
- ベストアンサー率45% (1080/2394)
ファイルI/Oの部分と配列計算の部分を分けて考えた方が楽でしょう。 まずはループを用いて配列1と配列2の各要素の平均値を標準出力に出すところから始めてはどうかと。 #コードはあえて一切書きません
関連するQ&A
- perlでの配列について
配列の配列について教えてください。 以下のようなテキストから値を取得し、A,B,Cの値をそれぞれ別の配列に格納し、A,B,Cの平均値を出す処理を行っているとします。 ----- A=100 B=200 C=300 A=110 B=210 : ----- 現状、以下のような状態です。 @arrayA=(); @arrayB=(); @arrayC=(); : (テキストを読み込み) : ・読み込んだ行がA=XXXならarrayAにpush push(@arrayA,"100"); ・読み込んだっ行がB=XXXならarrayBにpush push(@arrayB,"100"); : (各配列の要素の平均値を出す) このやり方だと、グループが増えるとそのまま行数が増えて冗長なので、グループごとの配列を1つの配列にまとめたいのです。 Webで初期値を入れた形で説明しているのはよくみるのですが、今回のように空の配列に値をいれていくにはどうすればよいのでしょうか?(そもそも宣言の仕方もわかりません)。 また、配列の配列?とした場合、以下のような処理はできるのでしょうか? (1)配列の1つ目の要素(の配列)にpushする(現状でのarrayAにpushに該当) push(@arrayAll[0],"test");
- 締切済み
- Perl
- このような配列の場合の計算法はどうすればいいのですか?
プログラミング言語(C言語、JavaScript、PHP)を勉強し始めたのですが、以下のような場合の計算法がわかりません。 もう2日悩んでいます…。 ■配列の中身が、3つあるとします。たとえば、array(10,20,30)とします。 このとき printf((10*20) + (20*30) + (30*10)); という計算式の結果を求めたいです。 ■配列の中身が、4つあるとします。たとえば、array(10,20,30,40)とします。 このとき printf((10*20*30) + (10*20*40) + (10*30*40) + (20*30*40)); という計算式の結果を求めたいです。 ■配列の中身が、5つあるとします。たとえば、array(10,20,30,40,50)とします。 このとき printf((10*20*30*40) + (10*20*40*50) + (10*20*30*50) + (10*30*40*50) + (20*30*40*50)); という計算式の結果を求めたいです…(何度もすみません)。 上記のように配列の中身の個数と値が未確定の場合はどのようなコードで計算させればよいのでしょうか?配列の個数は1~10個を想定しております。 C言語、JavaScript、PHPのどの方法でもアプローチ法は同じだと思うので、いずれかの言語でかまいませんのでアドバイス頂ければと思います。よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- pythonでの配列の計算
pythonで、配列Aの各要素(数字)に対して別途定義された関数で計算して別の配列Bに保存する、ということを考えています(あまりにも初歩)。 Pythonでこのコードを書くことができません。CやFortranでは1つ1つの配列要素をループで巡って計算して新しい配列に保存するだけなのですが、Pythonだと配列のサイズの指定はしなくていいはずですね。また配列要素1つ1つを見て回るようなこともしなくていいと思います(裏ではやっているのでしょうが)。これはどういうコードになるでしょうか。ネットなどで調べても簡単すぎるのか逆にたどり着けないみたいです。よろしくお願いします。 私が使っているPythonのテキスト(分厚い)には索引に”配列”もありません。リスト、タプルになってしまったのでしょうか。 また、このような初歩的処理はJuliaでもいけるのではと思います。Pythonの文法を手掛かりにJuliaもできそうなので。
- 締切済み
- Python
- キーボード101配列と106配列
同じような症状になった人がいれば教えて頂きたいのですが、 メモ帳やエクセルでテキストを入力している時は106配列になり、 Internet Explorer や Outlook Expressでテキストを入力 している時は101配列となります。 デバイスマネージャのキーボードを確認すると 「101/102 英語キーボードまたは Microsoft Natural PS/2 キーボード」 と表示されていますが、メモ帳などでテキストを入力している時は106配列となる為、 原因は違う所にあるのかな?と思っています。 全てのアプリケーションで106配列でテキストを入力するには どのようにすればよいのでしょうか?
- ベストアンサー
- Windows XP
- 配列をある決まった順に表示させたい
c言語でint型の配列をきまった形で表示させるようにしたいです。 例えば配列の内容が8 7 3 2 5 1であったときは [ 8 [ 7 2 5 ] [ 3 1 _ ] ]と表示させたいのです。 この表示は 8 / \ 7 3 / \ / 2 5 1 このような左から順に埋めていった2分木を表しています。 8 7 3なら [8 7 3] 8 / \ 7 3 となります。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- VBA 配列計算について 配列の入力に配列の使用
配列に複数のセル値の合計値を設定したいと思っています。 求める合計値は複数あるため、出力も配列となります。 そこで下記のようにプログラムを考えたのですが、全て同じ値の配列として出力されてしまいます。 VBAではC言語のように配列の古い値に足していくことはできないのでしょうか? (sum()は0で初期化) (10個飛ばしのデータの合計値を算出) For i = 0 To 10 For j = 0 To 5 sum(i)= sum(i) + Worksheets(sheetname).Cells(10, 3).Offset(j * 10, 0).Value Next i Next j 出力配列例 全て同じ値になってしまいます・・・ 1.254 1.254 1.254 ・・・ 回避方法もしくはうまい計算方法などありませんでしょうか
- ベストアンサー
- Visual Basic
- 配列について
C言語についてです。 配列を次のように指定します。 a[3][3][3]={{ {1,7,6}, {6,9,2}, {3,1,1}, },{ {4,6,5}, {5,2,2}, {9,3,7}, },{ {2,6,8}, {2,2,4} {1,1,5}, }} b[3][3]={ {5,5,1}, {3,8,2}, {6,7,0}, } aの配列の中で、bの配列との差が1であるのが多い配列を表示するプログラムを教えてください。 ただし、 {1,7,6}, {6,9,2}, {3,1,1}, なら1、 {4,6,5}, {5,2,2}, {9,3,7}, なら2、 {2,6,8}, {2,2,4} {1,1,5}, なら3と表示する。
- 締切済み
- C・C++・C#