void add_contact(User *user) { if (user->num_contacts >= MAX_CONTACTS) { printf("*添加失败,联系人已达到最大数量!\n"); return; } Contact *contact = &user->contacts[user->num_contacts]; printf(">请输入姓名:"); scanf("%s", contact->name); printf(">请输入性别: "); scanf("%s", contact->sex); printf(">请输入年龄: "); scanf("%d", &contact->age); printf(">请输入家庭电话: "); scanf("%s", contact->home_phone); printf(">请输入移动电话: "); scanf("%s", contact->mobile_phone); printf(">请输入办公电话: "); scanf("%s", contact->office_phone); user->num_contacts++; printf("*联系人添加成功!\n"); }的参数和返回值
时间: 2024-02-26 12:55:12 浏览: 60
这段代码中的函数是一个无返回值函数,参数是一个指向User类型的指针变量。
函数的作用是向用户的联系人列表中添加新的联系人信息,如果联系人已满则添加失败并返回。函数中依次提示用户输入联系人的姓名、性别、年龄、家庭电话、移动电话和办公电话,并将输入的数据存储到新联系人的结构体变量中。最后将用户的联系人数量加1,并输出添加成功信息。
相关问题
void delete_contact(User *user) { char name[MAX_NAME_LEN]; int i,j; printf(">>请输入要删除的联系人姓名:"); scanf("%s", name); printf("查找结果:\n"); for (i = 0; i < user->num_contacts; i++) { if (strstr(user->contacts[i].name, name) != NULL) { printf("\t\t\t%-5s\t%-5s\t%-5s\t%-15s\t%-15s\t%-15s\n","姓名","性别","年龄","家庭电话","移动电话","办公电话"); printf("\t\t\t%-5s\t%-5s\t%-5d\t%-15s\t%-15s\t%-15s\n",user->contacts[i].name,user->contacts[i].sex,user->contacts[i].age,user->contacts[i].home_phone,user->contacts[i].mobile_phone,user->contacts[i].office_phone); } } printf(">>请再次输入要删除的联系人姓名:"); scanf("%s", name); for (i = 0; i < user->num_contacts; i++) { if (strcmp(user->contacts[i].name, name) == 0) { for (j = i; j < user->num_contacts - 1; j++) { user->contacts[j] = user->contacts[j + 1]; } user->num_contacts--; printf("*联系人删除成功!(记得按5选项保存数据)\n"); return; } } printf("*未找到该联系人,请重试!\n"); }的参数和返回值
这段代码中的函数是一个无返回值函数,参数是一个指向User类型的指针变量。
函数的作用是从用户的联系人列表中删除指定姓名的联系人信息。函数中首先提示用户输入要删除的联系人姓名,并在联系人列表中查找姓名包含指定字符串的联系人,并输出查找结果。然后再次提示用户输入要删除的联系人姓名,并在联系人列表中查找指定姓名的联系人,并将该联系人从列表中删除。最后输出删除成功信息或未找到该联系人信息。
函数中使用了两次for循环,第一次循环用于查找指定字符串的联系人,并输出查找结果;第二次循环用于查找指定姓名的联系人,并将该联系人从列表中删除。函数中使用了字符串比较函数strcmp()和字符串查找函数strstr()。
void findall_contacts(User *user) { int i,j,temp; for(i=0;i<user->num_contacts-1;i++) { for(j=0;j<user->num_contacts-i-1;j++) { if(user->contacts[j].age>user->contacts[j+1].age) { temp=user->contacts[j].age; user->contacts[j].age=user->contacts[j+1].age; user->contacts[j+1].age=temp; } } } printf("所有联系人信息(按年龄排序):\n"); printf("\t\t\t%-5s\t%-5s\t%-5s\t%-15s\t%-15s\t%-15s\n","姓名","性别","年龄","家庭电话","移动电话","办公电话"); for (i = 0; i < user->num_contacts; i++) { printf("\t\t\t%-5s\t%-5s\t%-5d\t%-15s\t%-15s\t%-15s\n",user->contacts[i].name,user->contacts[i].sex,user->contacts[i].age,user->contacts[i].home_phone,user->contacts[i].mobile_phone,user->contacts[i].office_phone); } }d的参数,返回值,功能
该函数的参数为一个指向User类型的指针user。该函数的返回值类型为void,即没有返回值。该函数的功能是对user中的联系人按照年龄进行排序,并将排序结果输出到屏幕上显示出来。具体实现过程是使用冒泡排序算法,将联系人按照年龄从小到大进行排序。然后通过printf函数将排序后的联系人信息按照一定的格式输出到屏幕上。
阅读全文