題材
10名分の点数を入力(点数は0以上10以下の整数として、同じ点数はないと仮定します。)
上位3名を合格とし、合格者が何人目かを表示するコードを書きたいです。
発生している問題
ですが、以下のコードだと上位三人の点数が出てしまいます。
どのようにコードを書き換えたら合格者が何人目かを表示するコードになるのか教えていただきたいです。
C
1#include <stdio.h> 2 3int main (void) { 4 int data[10],i,j,num; 5 for (i = 0;i < 10; i++) { 6 printf("点数を入力してください:"); 7 scanf("%d",&data[i]); 8 if ((data[i] < 0)||(data[i] > 10)) { 9 i--; 10 printf("条件を満たしていないのでもう一度"); 11 } 12 } 13 14 printf("合格者:"); 15 for (i = 0;i < 10;i++) { 16 for (j=i+1;j < 10;j++) { 17 if (data[i] < data[j]) { 18 num = data[i]; 19 data[i] = data[j]; 20 data[j] = num; 21 } 22 } 23 } 24 25 for (i=0;i < 3;i++) { 26 printf("%d人目",data[i]); 27 } 28}
terminal
1点数を入力してください:10 2点数を入力してください:9 3点数を入力してください:8 4点数を入力してください:7 5点数を入力してください:6 6点数を入力してください:5 7点数を入力してください:4 8点数を入力してください:3 9点数を入力してください:2 10点数を入力してください:1 11合格者:10人目9人目8人目
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。