题目:
算法描述:
先创建2个数组,然后将学号,成绩都存在数组里面,然后里要冒泡排序法将学号,成绩按从小到大进行排序,然后输出第k名的成绩(数组下标为k-1)的。
#include<stdio.h> int main(void) { int n,k; scanf("%d%d",&n,&k); double xuehao[n]; double cj[n]; int i; printf("\n"); for(i=0;i<n;i++) { scanf("%lf",&xuehao[i]); printf(" "); scanf("%lf",&cj[i]); printf("\n"); } //冒泡 double temp1,temp2; int j; for(j=1;j<n;j++) { for(i=0;i<n-j;i++) { if(cj[i]<cj[i+1]) //把最大的放在后面,是小于,不是大于 { temp1=cj[i+1]; cj[i+1]=cj[i]; cj[i]=temp1; temp2=xuehao[i+1]; xuehao[i+1]=xuehao[i]; xuehao[i]=temp2; } } } //printf("%.0f %.1f",xuehao[k],cj[k]); 不能是k,c语言数组的语法 printf("%.0f %.1f",xuehao[k-1],cj[k-1]); return 0; }
结果: