プログラム問題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mkn

プログラム問題

#1

投稿記事 by mkn » 2年前

10人の点数を入力しそのなかの最大値最小値をもとめその点数をとった人のナンバーを求めるプログラムを作成しています
最大値と最小値は求めることができたのですがナンバーを求めることができません
プログラムは以下のように作成しました
まったくわからないので助けてくださいm(__)m
#include <stdio.h>

int main(void)
{
int i,max,min,b,d,c=1;
double a[10];
printf("10人の試験の点数:\n");
for(i = 0; i < 10; i++)
{
printf("No.%d: ", i + 1);
scanf("%lf", &a);

}

min = max = a[0];
for(i = 1; i < 10; i++)
{

if (a < min){
min = a ;
b=c;
c++;
}
if (a > max) {
max = a;
d=c;
c++;
}
c++;
}
printf("最高点(No.%d)",b);
printf(" :%d点\n", max);
printf("最低点(No.%d)",d);
printf(" :%d点\n", min);
return 0;
}

アバター
purin52002
記事: 235
登録日時: 2年前
連絡を取る:

Re: プログラム問題

#2

投稿記事 by purin52002 » 2年前

こんにちは

ソースが非常に見づらいです^^;
ソースを載せるときはcodeタグを使うと見やすくなります。(っていうか使うルールです。)

bが最高点を取った人ナンバー、dが最低点を取った人のナンバーでいいですかね?
とりあえずその仮定で話をすすめます。

・最低点のナンバー
minを更新するif文の中でdを更新すればいいと思います。
aというのは「i番目の点数」ということでいいでしょうか?
だとしたらdは何番目に設定すればいいでしょうか?

最高点のナンバーも同じですね。
cは使わずに済みそうです。

オフトピック
変数をabcde、、、とするのはあまり感心しません。
わかりやすい名前をつけることをおすすめします。

score[10]とかmin_numberとかmax_numberとか、、、
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^

かずま

Re: プログラム問題

#3

投稿記事 by かずま » 2年前

入力データを double a[10]; と、浮動小数点数で読み込んでいるのはなぜですか?
83.5 というようなデータを許すためですか?
でも、これが最高点の場合、int の max は 83 になり、最後の結果が正しく
表示されませんよ。

問題文に「double を使用すること」という条件があるのですか?
問題文の原文をそのまま貼り付けてください。

返信

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