2418.对人进行排序c语言代码
时间: 2023-10-16 08:07:42 浏览: 50
抱歉,我是一名语言模型AI,无法理解你的问题。但是,我可以告诉你如何对人进行排序的一般思路。对人进行排序的一般思路是将每个人的信息(如年龄、身高等)作为关键字,然后根据不同的需求选择不同的排序算法进行排序。常用的排序算法有冒泡排序、选择排序、插入排序、快速排序、堆排序等。根据具体情况选择不同的算法可以达到更高的排序效率。至于C语言代码实现方面,可以通过编写相应的函数来实现排序。
相关问题
做一段通讯录排序的c语言代码
### 回答1:
下面是一段C语言代码,用于实现通讯录排序:
#include<stdio.h>
#define MAX_LEN 200 int main(){
int n;
char name[MAX_LEN][20];
int age[MAX_LEN];
printf("请输入联系人的个数:");
scanf("%d", &n);
for (int i=0; i<n; i++) {
printf("请输入第%d个联系人的姓名和年龄:", i+1);
scanf("%s%d", name[i], &age[i]);
}
for (int i=0; i<n-1; i++){
for (int j=0; j<n-1-i; j++) {
if (age[j]>age[j+1]) {
int temp=age[j];
age[j]=age[j+1];
age[j+1]=temp;
char tempStr[20];
strcpy(tempStr, name[j]);
strcpy(name[j], name[j+1]);
strcpy(name[j+1], tempStr);
}
}
}
printf("按年龄排序后的结果:\n");
for (int i=0; i<n; i++) {
printf("%s %d\n", name[i], age[i]);
}
return 0;
}
### 回答2:
#include <stdio.h>
#include <string.h>
// 声明一个结构体用于存储联系人信息
struct contact {
char name[50];
char phone[20];
};
// 函数声明
void bubbleSort(struct contact arr[], int size);
void swap(struct contact *xp, struct contact *yp);
void printContacts(struct contact arr[], int size);
int main() {
int size;
printf("请输入联系人个数:");
scanf("%d", &size);
printf("请依次输入联系人的姓名和电话号码:\n");
// 创建结构体数组
struct contact contacts[size];
// 读取联系人信息
for (int i=0; i<size; i++) {
printf("联系人%d姓名:", i+1);
scanf("%s", contacts[i].name);
printf("联系人%d电话号码:", i+1);
scanf("%s", contacts[i].phone);
}
// 对联系人进行排序
bubbleSort(contacts, size);
// 打印排序结果
printf("排序后的联系人列表:\n");
printContacts(contacts, size);
return 0;
}
// 冒泡排序算法实现
void bubbleSort(struct contact arr[], int size) {
for (int i=0; i<size-1; i++) {
for (int j=0; j<size-i-1; j++) {
if (strcmp(arr[j].name, arr[j+1].name) > 0) {
swap(&arr[j], &arr[j+1]);
}
}
}
}
// 交换两个联系人信息的函数
void swap(struct contact *xp, struct contact *yp) {
struct contact temp = *xp;
*xp = *yp;
*yp = temp;
}
// 打印联系人信息的函数
void printContacts(struct contact arr[], int size) {
for (int i=0; i<size; i++) {
printf("联系人%d:\n", i+1);
printf("姓名:%s\n", arr[i].name);
printf("电话号码:%s\n", arr[i].phone);
printf("\n");
}
}
### 回答3:
下面是一段使用C语言实现通讯录排序的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 100
typedef struct {
char name[50];
char email[50];
char phone[20];
} Contact;
void sortContacts(Contact contacts[], int numContacts) {
int i, j;
Contact temp;
for(i = 0; i < numContacts - 1; i++) {
for(j = 0; j < numContacts - i - 1; j++) {
if(strcmp(contacts[j].name, contacts[j+1].name) > 0) {
temp = contacts[j];
contacts[j] = contacts[j+1];
contacts[j+1] = temp;
}
}
}
}
int main() {
Contact contacts[MAX_CONTACTS];
int numContacts, i;
printf("请输入通讯录中联系人的数量:");
scanf("%d", &numContacts);
for(i = 0; i < numContacts; i++) {
printf("请输入第%d个联系人的姓名:", i + 1);
scanf("%s", contacts[i].name);
printf("请输入第%d个联系人的邮箱:", i + 1);
scanf("%s", contacts[i].email);
printf("请输入第%d个联系人的电话号码:", i + 1);
scanf("%s", contacts[i].phone);
}
sortContacts(contacts, numContacts);
printf("\n排序后的通讯录:\n");
for(i = 0; i < numContacts; i++) {
printf("联系人%d:\n", i + 1);
printf("姓名:%s\n", contacts[i].name);
printf("邮箱:%s\n", contacts[i].email);
printf("电话号码:%s\n\n", contacts[i].phone);
}
return 0;
}
```
这段代码首先定义了一个`Contact`结构体,用来存储通讯录中每个联系人的姓名、邮箱和电话号码。然后,通过`sortContacts`函数,使用冒泡排序对通讯录进行排序,按照联系人姓名的字母顺序进行排序。最后,在`main`函数中,先接收用户输入的联系人数量和每个联系人的信息,然后调用`sortContacts`函数进行排序,最后输出排序后的通讯录信息。
做一段通讯录结构体排序的c语言代码
### 回答1:
#include <stdio.h>
int main()
{
int i, j, a, n;
printf("请输入要排序的数字数量:");
scanf("%d", &n);
int number[n];
printf("请输入 %d 个数字:\n",n);
for (i = 0; i < n; ++i)
scanf("%d", &number[i]);
for (i = 0; i < n; ++i)
{
for (j = i + 1; j < n; ++j)
{
if (number[i] > number[j])
{
a = number[i];
number[i] = number[j];
number[j] = a;
}
}
}
printf("排序后的顺序是:\n");
for (i = 0; i < n; ++i)
printf("%d\n", number[i]);
return 0;
}
### 回答2:
以下为一个使用C语言的通讯录结构体排序代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_CONTACTS 100
// 通讯录结构体
typedef struct {
char name[50];
char phone[20];
char email[50];
} Contact;
// 比较函数,用于排序
int compareContacts(const void* a, const void* b) {
return strcmp(((Contact*)a)->name, ((Contact*)b)->name);
}
int main() {
int numContacts;
Contact contacts[MAX_CONTACTS];
// 输入通讯录信息
printf("请输入通讯录联系人数目:");
scanf("%d", &numContacts);
for (int i = 0; i < numContacts; i++) {
printf("请输入联系人姓名:");
scanf("%s", contacts[i].name);
printf("请输入联系人电话:");
scanf("%s", contacts[i].phone);
printf("请输入联系人邮箱:");
scanf("%s", contacts[i].email);
}
// 使用qsort函数进行排序
qsort(contacts, numContacts, sizeof(Contact), compareContacts);
// 打印排序后的通讯录
printf("\n排序后的通讯录:\n");
for (int i = 0; i < numContacts; i++) {
printf("姓名:%s, 电话:%s, 邮箱:%s\n", contacts[i].name, contacts[i].phone, contacts[i].email);
}
return 0;
}
```
这段代码首先定义了一个通讯录结构体`Contact`,包含了姓名、电话和邮箱三个属性。然后定义了一个用于比较通讯录结构体的函数`compareContacts`,该函数使用`strcmp`比较两个联系人的姓名。
在`main`函数中,首先从用户输入中获取通讯录联系人的数量,并且依次输入每个联系人的姓名、电话和邮箱。然后使用`qsort`函数对通讯录数组进行排序,排序的依据就是使用刚才定义的`compareContacts`函数比较姓名。
最后,打印排序后的通讯录信息。