トップページ > プログラム > 2016年05月25日 > mqK6DNQr

書き込み順位&時間帯一覧

16 位/196 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000002000114



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C言語なら俺に聞け! Part 135©2ch.net

書き込みレス一覧

C言語なら俺に聞け! Part 135©2ch.net
249 :デフォルトの名無しさん[sage]:2016/05/25(水) 18:09:12.23 ID:mqK6DNQr
最後のループではi<4ではなくてi<5。
最後のprintfでは最高点tempmaxを表示するようだけど、
何人目だからiを表示しないといけない。
最高点を取った人の番号を保存するための変数を用意して
最後のループを書き換える。
int no=0;
for( i=0; i<5; i++)
{
if(c[i]>tempmax)
{
tempmax = c[i];
no=i;
}
}
printf("合格(A):%d人目 ",no+1);
これでどうだ?
C言語なら俺に聞け! Part 135©2ch.net
250 :デフォルトの名無しさん[sage]:2016/05/25(水) 18:12:42.26 ID:mqK6DNQr
こっちの方がいいかな。
printf("合格(A):%d人目 %d点",no+1,(int)tempmax);
C言語なら俺に聞け! Part 135©2ch.net
259 :デフォルトの名無しさん[sage]:2016/05/25(水) 22:09:08.78 ID:mqK6DNQr
ソートしないなら、tempmax1とtempmax2を用意して最初に最高点のtempmax1と順番を決定する。
次にtempmax2に対しても同じ計算をする。但し、c[i]<tempmax1を果たす。
要するに、最高得点を超えない場合の最高得点を求めればよい。
double tempmax1 = c[0],tempmax2 = c[0];
int no1=0,no2=0;
for( i=0; i<5; i++)
{
if(c[i]>tempmax1)
{
tempmax1 = c[i];
no1=i;
}
}
for( i=0; i<5; i++)
{
if(c[i]>tempmax2 && c[i]<tempmax1)
{
tempmax2 = c[i];
no2=i;
}
}
printf("合格(A):%d人目 %d点\n",no1+1,(int)tempmax1);
printf("合格(A):%d人目 %d点\n",no2+1,(int)tempmax2);
C言語なら俺に聞け! Part 135©2ch.net
264 :デフォルトの名無しさん[sage]:2016/05/25(水) 23:24:12.02 ID:mqK6DNQr
面倒な奴だな。質問を小出しにするなよ。手間を掛けさせるな。
1番目2番目とかじゃなくて
5番目6番目とかずっと先まで出力したいなら
並べ替えしてから出力した方が短くて簡単だぞ。
並べ替えの方法はそこら辺のアルゴリズムの本に
幾らでも書いてある。本を探すのが面倒ならwikiにも出ているぞ。
挿入ソートでも見ればC言語のソースも載っている。
それをコピペして使え。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。