结构体--学生信息排序

结构体--学生信息排序

时间: 1ms        内存:128M

描述:

定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院系,要求在随意输入5个学生的相关信息后,按照学号从小到大顺序输出这些学生的信息。

输入:

先输入5名学生的信息,按学号顺序排序输出后在输入要统计的院系名称

输出:

先按学号从小到大的顺序输出学生信息

示例输入:

zhang3    20149003    M    信息系
zhang5    20149005    F    信息系
zhang10    20149010    F    管理系
zhang1    20149001    M    会计系
zhang9    20149009    M    会计系

示例输出:

zhang1    20149001    M    会计系
zhang3    20149003    M    信息系
zhang5    20149005    F    信息系
zhang9    20149009    M    会计系
zhang10    20149010    F    管理系

提示:

参考答案(内存最优[0]):

#include<iostream>
#include <string>
using namespace std;

struct student
{
	string name;
	int num;
	char sex;
	string addr;
};

int main()
{
	int i,j,k;
	student a[5];
    student stu[5];

	for(i=0;i<5;i++)
	{
		cin>>stu[i].name>>stu[i].num>>stu[i].sex>>stu[i].addr;
    }
    for(i=0;i<5-1;i++)
	{
		for(j=0;j<5-1-i;j++)
		{
			if(stu[j].num>stu[j+1].num)
			{
                 a[j]=stu[j];
			     stu[j]=stu[j+1];
			     stu[j+1]=a[j];
			}
		}
	}

	cout<<endl;
	for(k=0;k<5;k++)
		cout<<stu[k].name<<"    "<<stu[k].num<<"    "<<stu[k].sex<<"    "<<stu[k].addr<<endl;

    return 0;
}

参考答案(时间最优[0]):

#include <iostream> 
#include <string>
using namespace std; 
#define N 5 
struct student 
{ 
    char name[20]; 
    int num; 
    char sex[2]; 
    char school[30]; 
}stu[N]; 
  
student t; 
void sort(student *p,int n); 
void print(student *p,int n); 
  
int main() 
{ 
    int n=N,i,m=0; 
    char sch[10]; 
  
    for(i=0;i<n;i++) 
    { 
     
        cin>>stu[i].name>>stu[i].num>>stu[i].sex>>stu[i].school; 
    } 
  
    sort(stu,n); 
    
    print(stu,n); 
  
    return 0;
} 
  
void sort(student *p,int n) 
{ 
    int i,j; 
    for(i=0;i<n-1;i++) 
        for(j=0;j<n-i-1;j++)
			if((*(p+j)).num>(*(p+j+1)).num) 
			{ 
				t=*(p+j); 
				*(p+j)=*(p+j+1); 
				*(p+j+1)=t; 
			} 
} 
  
void print(student *p,int n) 
{ 
    int i; 
    for(i=0;i<n;i++) 
    cout<<(p+i)->name<<"    "<<(p+i)->num<<"    "<<(p+i)->sex<<"    "<<(p+i)->school<<endl; 
 } 

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注