YOJ3176值日安排

题目描述

新生报到,OJ 实验室新来了 7 名同学,为了安排一周的宿舍值日情况,决定按照年龄从小到大的顺序依次安排到周一至周日。

请完善如下程序:

#include 
#include 

struct studentInfo
{
    int num;        //学生学号
    char name[20];  //学生姓名,默认不超过20个字符
    int year;       //学生出生年份
    int month;      //学生出生月份
    int day;        //学生出生天
};

int main()
{
    int i,j,k,tmp1,tmp2;      //i,j迭代变量
    char *days[7] = {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"};
    struct studentInfo stu[7],tmpstu;  //学生信息
    for( i = 0 ; i < 7 ; i++)
        scanf("%d %s %d %d %d",&stu[i].num,stu[i].name,&stu[i].year,&stu[i].month,&stu[i].day);
    /*******在下面填写代码***********/
    /*******在上面填写代码***********/
    for( i = 0 ; i < 7 ; i++)   //输出排好序的stu信息
        printf("%s %d %s\n",days[i],stu[i].num,stu[i].name);
    return 0;
}

输入

7 名同学的学号,姓名,出生年月日(任意两个学生出生日期不同)

输出

安排好的一周的值日表,每行中的数据以空格隔开。

输入输出样例

样例输入 #1

复制

1224 lushaoxiao 1997 12 24
3132 wangxu 1997 11 10
3128 mengyuan 1997 10 1
3129 yushisheng 1997 8 12
1147 chenjueyu 1998 3 24
6125 lijianian 1998 6 14
3220 zhangliying 1997 7 18

样例输出 #1

复制

Monday 6125 lijianian
Tuesday 1147 chenjueyu
Wednesday 1224 lushaoxiao
Thursday 3132 wangxu
Friday 3128 mengyuan
Saturday 3129 yushisheng
Sunday 3220 zhangliying

【代码】

for(i=0;i<6;i++)
    {
        for(j=0;j<6-i;j++)
        {
            if(stu[j].year             {
                tmpstu= stu[j];
                stu[j]=stu[j+1];
                stu[j+1]=tmpstu;
            }
            if(stu[j].year==stu[j+1].year)
            {
                if(stu[j].month                 {
                    tmpstu= stu[j];
                stu[j]=stu[j+1];
                stu[j+1]=tmpstu;
                }
                if(stu[j].month==stu[j+1].month)
                {
                    if(stu[j].day                     {
                        tmpstu= stu[j];
                        stu[j]=stu[j+1];
                        stu[j+1]=tmpstu;
                    }
                }
            }
        }
    }

你可能感兴趣的:(c++,c#)