C语言刷题系列——17.计算平均成绩 18.找出总分最高的学生19.通讯录排序(二)

简介: C语言刷题系列——17.计算平均成绩 18.找出总分最高的学生19.通讯录排序(二)

🐤通讯录排序


🏀 题目要求

输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。

输入格式:

输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。

输出格式:

按照年龄从大到小输出朋友的信息,格式同输出。


🏀 题解

💻step1.定义结构体

struct Friend
{
    char name[10];
    int birth;
    char num[20];//比17大一点
}fri[10];


💻step2.输入n;随后n行 每行给出一个朋友的信息

int main()
{
    int n;
    scanf("%d",&n);
    int i = 0;
    for(i = 0;i<n;i++)
    {
        scanf("%s%d%s",fri[i].name,&fri[i].birth,fri[i].num);
        getchar();
    }
    //继续
    return 0;
}


💻step3.按照年龄从大到小输出

⭐注意注意注意,年龄越大,yyyymmdd越小

不要算反账!!!

(如20040101的年龄大于20050422的)


就是个选择排序,代码如下

int min = 0,j;
    for(i = 0;i<n-1;i++)
    {
        min = i;
        for(j = i+1;j<n;j++)
        {
            if(r=fri[min].birth>fri[j].birth)
            {
                min = j;
            }
        }
        if(i!=min)
        {
            struct Friend tem = fri[i];
            fri[i] = fri[min];
            fri[min] = tem;
        }
    }


🐳完整代码

#include<stdio.h>
struct Friend
{
    char name[10];
    int birth;
    char num[20];
}fri[10];
int main()
{
    int n;
    scanf("%d",&n);
    int i = 0;
    for(i = 0;i<n;i++)
    {
        scanf("%s%d%s",fri[i].name,&fri[i].birth,fri[i].num);
        getchar();
    }
    int min = 0,j;
    for(i = 0;i<n-1;i++)
    {
        min = i;
        for(j = i+1;j<n;j++)
        {
            if(r=fri[min].birth>fri[j].birth)
            {
                min = j;
            }
        }
        if(i!=min)
        {
            struct Friend tem = fri[i];
            fri[i] = fri[min];
            fri[min] = tem;
        }
    }
    for(i = 0;i<n;i++)
    {
        printf("%s %d %s\n",fri[i].name,fri[i].birth,fri[i].num);
    }
    return 0;
}


相关文章
|
1月前
|
存储 数据可视化 C语言
【C语言】C语言 学生成绩管理系统(源码+报告)【千行代码】【独一无二】
【C语言】C语言 学生成绩管理系统(源码+报告)【千行代码】【独一无二】
|
29天前
|
存储 C语言
【C语言】基础刷题训练4(含全面分析和代码改进示例)
【C语言】基础刷题训练4(含全面分析和代码改进示例)
|
1月前
|
存储 C语言
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
【C语言】C语言-学生成绩管理系统(源码+数据文件+课程论文)【独一无二】
36 15
|
1月前
|
存储 数据可视化 数据安全/隐私保护
【C语言】C语言-成绩管理系统(管理员+教师+学生 源码)【独一无二】
【C语言】C语言-成绩管理系统(管理员+教师+学生 源码)【独一无二】
|
1月前
|
存储 搜索推荐 算法
【C语言】C语言—通讯录管理系统(源码)【独一无二】
【C语言】C语言—通讯录管理系统(源码)【独一无二】
|
1月前
|
存储 数据可视化 C语言
【C语言】C语言 手机通讯录系统的设计 (源码+数据+论文)【独一无二】
【C语言】C语言 手机通讯录系统的设计 (源码+数据+论文)【独一无二】
|
29天前
|
C语言
【C语言刷题训练】——第7节(含代码与分析思路)
【C语言刷题训练】——第7节(含代码与分析思路)
|
29天前
|
测试技术 C语言 C++
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
【C语言刷题训练——6】鹏哥C语言刷题训练营笔记,含代码讲解改进
|
29天前
|
存储 C语言
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
【C语言】鹏哥C语言刷题训练营——第5节内容笔记(含代码全面分析和改进,讲解)
|
3月前
|
C语言
C语言刷题(函数)
C语言刷题(函数)