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
- 登録日時: 8年前
- 連絡を取る:
Re: プログラム問題
こんにちは
ソースが非常に見づらいです^^;
ソースを載せるときはcodeタグを使うと見やすくなります。(っていうか使うルールです。)
bが最高点を取った人ナンバー、dが最低点を取った人のナンバーでいいですかね?
とりあえずその仮定で話をすすめます。
・最低点のナンバー
minを更新するif文の中でdを更新すればいいと思います。
aというのは「i番目の点数」ということでいいでしょうか?
だとしたらdは何番目に設定すればいいでしょうか?
最高点のナンバーも同じですね。
cは使わずに済みそうです。
ソースが非常に見づらいです^^;
ソースを載せるときはcodeタグを使うと見やすくなります。(っていうか使うルールです。)
bが最高点を取った人ナンバー、dが最低点を取った人のナンバーでいいですかね?
とりあえずその仮定で話をすすめます。
・最低点のナンバー
minを更新するif文の中でdを更新すればいいと思います。
aというのは「i番目の点数」ということでいいでしょうか?
だとしたらdは何番目に設定すればいいでしょうか?
最高点のナンバーも同じですね。
cは使わずに済みそうです。
オフトピック
変数をabcde、、、とするのはあまり感心しません。
わかりやすい名前をつけることをおすすめします。
score[10]とかmin_numberとかmax_numberとか、、、
わかりやすい名前をつけることをおすすめします。
score[10]とかmin_numberとかmax_numberとか、、、
c++初心者を自負しています。
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^
質問者さんには今後私にプログラミングを教えてくれるようにやさしく丁寧に教えるつもりです。ぎぶあんどていく^p^
回答者さんには精一杯感謝します。ぎぶおんりー^p^
Re: プログラム問題
入力データを double a[10]; と、浮動小数点数で読み込んでいるのはなぜですか?
83.5 というようなデータを許すためですか?
でも、これが最高点の場合、int の max は 83 になり、最後の結果が正しく
表示されませんよ。
問題文に「double を使用すること」という条件があるのですか?
問題文の原文をそのまま貼り付けてください。
83.5 というようなデータを許すためですか?
でも、これが最高点の場合、int の max は 83 になり、最後の結果が正しく
表示されませんよ。
問題文に「double を使用すること」という条件があるのですか?
問題文の原文をそのまま貼り付けてください。