ページ 11

無題

Posted: 2009年11月26日(木) 15:41
by マーサ
実数値を入力してください: 2.2
実数値を入力してください: 3.5
実数値を入力してください: 4.3
実数値を入力してください: 8.1
実数値を入力してください: 9.0
実数値を入力してください: 0
(2.200000 + 3.500000 + 4.300000 + 8.100000 + 9.000000) / 5 = 5.420000
配列数値を使ってこの実行結果をだしたいんですけど、どうすればいいですか?
入力する数値はscanf数値です。
break文を使って0を入力すると終了します。

Re:無題

Posted: 2009年11月26日(木) 16:09
by softya
まず、規約と注意事項を読んで頂いて、それに沿った質問をお願いします。

Re:無題

Posted: 2009年11月26日(木) 16:13
by non
配列は静的に確保していいのでしょうか?その場合は何個?

演算問題

Posted: 2009年11月26日(木) 16:41
by マーサ
えーと…初めてなのですみません。なるべく具体的に説明します。
C++です。
次のステップで実行されるプログラムを作成せよ.

Step 1.
要素数100のfloat型配列を宣言する.
Step 2.
scanf関数を用いてこの配列にデータを順に入力し,データ数が100に達するか,データとして0を入力すると,次の処理に進む.
ヒント: 入力できるデータの最大個数は100なので,データ数が100に達した場合,または,0を入力した場合にループを終了しなければならない.
Step 3.
ループをもう一度用いて,入力されたデータをすべて表示する。
Step 4.
入力されたデータの合計値を計算して表示する

実行例は次のとおり
実数値を一つ入力してください: 2.2
実数値を一つ入力してください: 3.5
実数値を一つ入力してください: 4.3
実数値を一つ入力してください: 8.1
実数値を一つ入力してください: 0
2.200000 + 3.500000 + 4.300000 + 8.100000 = 18.100000
Press any key to continue
っていうふうにしたいんですけどどうすればいいですか?
あと、この結果を使って

実数値を一つ入力してください: 2.2
実数値を一つ入力してください: 3.5
実数値を一つ入力してください: 4.3
実数値を一つ入力してください: 8.1
実数値を一つ入力してください: 9.0
実数値を一つ入力してください: 0
(2.200000 + 3.500000 + 4.300000 + 8.100000 + 9.000000) / 5 = 5.420000
Press any key to continue

ってやりたいんですけど。
まだ、なにか必要なことはありますか?

Re:演算問題

Posted: 2009年11月26日(木) 16:47
by Mist
課題か何か知りませんが問題の丸投げは規約で禁止されています。
あなたができるところまでのプログラムを作製し提示してください。
そのうえで、何が分からないのかを質問してください。

何一つわからないのであれば、C++の学習サイトを見るなりして基礎の勉強からはじめてください。

Re:演算問題

Posted: 2009年11月26日(木) 17:28
by non
作ってみました。
using namespace System;
int main(void)
{
        float point[100];
        float sum = 0;
        int no = 0;
        while (true)
        {
			Console::Write("実数値を一つ入力してください:");
			point[no]=float::Parse(Console::ReadLine());
            if (point[no] == 0)
                break;
            sum += point[no];
            no++;
        }
		Console::Write("(");
        for(int i = 0;i<no-1;i++)
			Console::Write("{0,0:F6} + ", point);
		Console::Write("{0,0:F6}", point[no-1]);
        float average = sum / no;
		Console::WriteLine(") / {0} = {1,0:F6}", no, average);	
		return 0;
}

Re:演算問題

Posted: 2009年11月26日(木) 17:32
by non
字下げを失敗したので、もう一度貼り付けます。
using namespace System;
int main(void)
{
	float point[100];
	float sum = 0;
	int no = 0;
	while (true)
	{
		Console::Write("実数値を一つ入力してください:");
		point[no]=float::Parse(Console::ReadLine());
		if (point[no] == 0)
			break;
		sum += point[no];
		no++;
	}
	Console::Write("(");
	for(int i = 0;i<no-1;i++)
		Console::Write("{0,0:F6} + ", point);
	Console::Write("{0,0:F6}", point[no-1]);
	float average = sum / no;
	Console::WriteLine(") / {0} = {1,0:F6}", no, average);	
	return 0;
}

Re:演算問題

Posted: 2009年11月26日(木) 17:53
by softya
nonさんにお願いです。
回答者も規約に沿っていただける様にお願いします。
って回答例がC++/CLIですか?

Re:演算問題

Posted: 2009年11月26日(木) 17:59
by non
C++であれば、.NET Framework でも良いと判断しました。
流れはわかるだろうし、充分なヒントかと。