描述
在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。
输入第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。输出输出第k名学生的学号和成绩,中间用空格分隔。
我的程序:
/* * 程序的版权和版本声明部分: * Copyright (c) 2017, 信息学院 * All rights reserved. * 文件名称:谁考了第k名* 作 者:邓华伟* 完成日期:2017年3月4日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分: * 输入描述:无 *问题分析:根据成绩来进行排名,建立结构体。* 算法设计:略*/ #include<stdio.h>#include<iostream>using namespace std;struct studen//建立结构体{char name[20];//姓名用字符数组来存储double num;//成绩};int main(){struct studen student[100];struct studen t;int n,k,i,j;cin>>n>>k;for(i=0;i<n;i++){cin>>student[i].name>>student[i].num;}//输入for(i=0;i<n;i++)for(j=0;j<n-i-1;j++){if(student[j].num<student[j+1].num){t=student[j];student[j]=student[j+1];student[j+1]=t;}//以成绩来进行排名!}cout<<student[k-1].name<<' '<<student[k-1].num<<endl;return 0;}运行结果:
我的心得:
学会运用结构体来对多个信息进行处理,发挥结构体的优势,抓住排序的关键,运用结构体给问题的解决提供很大便利!
新闻热点
疑难解答