前提・実現したいこと
aには入力回数、bには出力回数を入力して数字が高い順に出力したいです。
例えば、
4 2
Mary 95
yue 70
dani 100
chris 76
入力すると
dani
Mary
を出力したいです。
発生している問題
Mydchris ydchris
該当のソースコード
struct student{ char name[9]; int score[10]; }; int main(){ struct student s; int a,b; int n,i; scanf("%d %d",&a,&b); for(i=0;i<a;i++){ scanf("%s %d",&s.name[i],&s.score[i]); } for(i=0;i<a;i++){ { for(int j=i+1;j<a;j++){ if(s.score[i]<s.score[j]){ int temp=s.score[i]; s.score[i]=s.score[j]; s.score[j]=temp; } } } } for(i=0;i<b;i++){ printf("%s\n",&s.name[i]); } return 0; }
試したこと
上のコードではs.scoreはよく出力されますが、名前は間違った値が出力されます。多分保存が間違っているようですが教えてください
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/29 16:45
2021/05/29 16:57
2021/05/29 17:16
2021/05/29 17:38
2021/05/29 17:53