c语言结构体输入学生信息按电话排序

介绍

结构体是C语言中一种自定义的数据类型,可以用来存储不同类型的数据,比如学生的姓名、年龄、电话等。本文将介绍如何使用结构体输入学生信息,并按照电话号码进行排序。

定义结构体

在C语言中,可以使用typedef关键字定义结构体。首先我们需要定义一个包含姓名、年龄、电话的结构体类型,可以命名为Student,代码如下:

typedef struct {
    char name[20];
    int age;
    long long phone;
} Student;

在上述代码中,我们使用了char数组来存储姓名,int类型来存储年龄,long long类型来存储电话号码。

输入学生信息排序

现在我们已经定义好了结构体,接下来我们需要输入学生信息,并按照电话号码进行排序。

首先,我们需要定义一个可以存储多个学生信息的数组,比如可以定义为students数组:

Student students[100];

然后,我们可以使用循环来输入学生信息,代码如下:

int i, n;
printf("请输入学生人数:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
    printf("请输入第%d个学生的姓名、年龄、电话号码(以空格分隔):", i + 1);
    scanf("%s%d%lld", students[i].name, &students[i].age, &students[i].phone);
}

在上述代码中,我们首先输入学生的人数n,然后使用循环逐个输入每个学生的姓名、年龄、电话号码。

接下来,我们需要排序这些学生信息。C语言中可以使用冒泡排序算法进行排序,代码如下:

int j;
Student temp;
for (i = 0; i < n - 1; i++) {
    for (j = 0; j < n - 1 - i; j++) {
        if (students[j].phone > students[j + 1].phone) {
            temp = students[j];
            students[j] = students[j + 1];
            students[j + 1] = temp;
        }
    }
}

在上述代码中,我们使用两层循环遍历学生信息数组,比较相邻两个学生的电话号码,如果前一个学生的电话号码大于后一个学生的电话号码,则交换这两个学生的位置。

最后,我们可以使用循环输出排序后的学生信息,代码如下:

printf("按照电话号码排序后的学生信息:\n");
for (i = 0; i < n; i++) {
    printf("姓名:%s\t年龄:%d\t电话:%lld\n", students[i].name, students[i].age, students[i].phone);
}

在上述代码中,我们逐个输出学生的姓名、年龄、电话号码。

通过以上步骤,我们可以实现输入学生信息,并按照电话号码进行排序的功能。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/cyynqi.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年7月28日 上午8:24
下一篇 2023年7月28日 上午8:24

猜你喜欢