我的代码运行后总是有一个人的顺序是错误的,比如按照样例输入,Iris的顺序输出时是最后一位,求看看哪里有问题,然后帮忙修改一下~
描述
输入n个学生的信息,包括姓名,性别,出生年月。要求按年龄从小到大依次输出这些学生的信息。数据保证没有学生同年同月出生。
输入
第一行一个整数n,表示学生人数,n<=100.
接下来n行,每一行依次输入学生的姓名、性别、出生年份、出生月份。
输出
按年龄从小到大,一行输出一个学生的原始信息。
样例输入:
5
KouKAL male 1999 12
YaeSakura male 1999 8
Raminad male 1998 11
Zhang_ct female 1998 8
Iris female 2000 7
样例输出:
Iris female 2000 7
KouKAL male 1999 12
YaeSakura male 1999 8
Raminad male 1998 11
Zhang_ct female 1998 8
我的代码:
#include<iostream>
using namespace std;
struct student
{
string xingming;
string xingbie;
int nian;
int yue;
};
int main()
{
int i;int j;
int n;string a;string b;int c;int d;
cin>>n;
student stuArray[n];
for(int i=0;i<n;i++)
{
cin>>a>>b>>c>>d;
stuArray[i].xingming=a;
stuArray[i].xingbie=b;
stuArray[i].nian=c;
stuArray[i].yue=d;};
for(i=0;i<n;i++)
{
if(stuArray[i].nian<stuArray[i+1].nian)
{
int m=i+1;
int temp=i;
i=m;
m=temp;
};
if(stuArray[i].nian=stuArray[i+1].nian)
{if(stuArray[i].yue<stuArray[i+1].yue)
{
int p=i+1;
int temp=i;
i=p;
p=temp;
};
};
for(i=0;i<n;i++)
{
cout<<stuArray[i].xingming<<" ";
cout<<stuArray[i].xingbie<<" ";
cout<<stuArray[i].nian<<" ";
cout<<stuArray[i].yue<<endl;
};
};
}