当前位置:网站首页>c语言结构体、函数以及指针练习(简单通讯录)
c语言结构体、函数以及指针练习(简单通讯录)
2022-08-09 23:42:00 【BSP初级小学僧】
#include <stdio.h>
#include <string.h>
typedef struct
{
char name[20];
long long phone;
char sex[10];
char dress[20];
int age;
}Person;
Person person_arr[20]={
{"熊大",10086,"男","河南",24},
{"熊二",10010,"男","陕西",23},
{"熊三",911,"男","湖北",25}};
void add()
{
int i,n;
printf("请输入本次需要添加几位通讯录好友:\n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入要添加的好友信息,名字 电话 性别 地址 年龄\n");
scanf("%s %lld %s %s %d", &person_arr[i+3].name,&person_arr[i+3].phone,\
&person_arr[i+3].sex,&person_arr[i+3].dress,&person_arr[i+3].age);
}
}
void del()
{
int i;
char name[20];
Person temp={0};
printf("请输入要删除的好友名字\n");
scanf("%s",name);
for(i=0;i<20;i++)
{
if(strcmp(person_arr[i].name,name)==0)
person_arr[i]=temp;
}
}
void seek()
{
int i;
char name[20];
printf("请输入要搜索的好友名字\n");
scanf("%s",name);
for(i=0;i<20;i++)
{
if(strcmp(person_arr[i].name,name)==0)
printf("%s %lld %s %s %d\n",person_arr[i].name,person_arr[i].phone,\
person_arr[i].sex,person_arr[i].dress,person_arr[i].age);
}
}
void modify()
{
int i;
char name[20];
printf("请输入要修改的好友名字\n");
scanf("%s",name);
for(i=0;i<20;i++)
{
if(strcmp(person_arr[i].name,name)==0)
{
printf("请输入要修改的好友信息, 名字 电话 性别 地址 年龄\n");
scanf("%s %lld %s %s %d", person_arr[i].name,&person_arr[i].phone,\
person_arr[i].sex,person_arr[i].dress,&person_arr[i].age);
}
}
}
void print()
{
int i;
Person temp={0};
for(i=0;i<20;i++)
{
if(person_arr[i].phone != 0)
{
printf("名字: %s 电话: %lld 性别: %s 地址: %s 年龄: %d\n",\
person_arr[i].name,person_arr[i].phone,person_arr[i].sex,\
person_arr[i].dress,person_arr[i].age);
}
}
}
void classfy()
{
Person temp;
int i,j;
for(i=0;i<19;i++)
{
for(j=0;j<19-i;j++)
{
//if(strcmp(person_arr[j].name,person_arr[j+1].name)==1)
if(person_arr[j].age>person_arr[j+1].age)
{
temp=person_arr[j];
person_arr[j]=person_arr[j+1];
person_arr[j+1]=temp;
}
}
}
}
int main()
{
int n=100;
while(n != 0)
{
printf("本通讯录名单信息如下:\n");
print();
printf("功能如下:\n");
printf("1、增加好友 2、删除好友\n");
printf("3、搜索好友 4、修改好友\n");
printf("5、打印好友 6、通讯录排序\n");
printf("0、退出\n");
scanf("%d", &n);
switch(n)
{
case 1:
add();
break;
case 2:
del();
break;
case 3:
seek();
break;
case 4:
modify();
break;
case 5:
print();
break;
case 6:
classfy();
break;
default :
break;
}
}
return 0;
}
运行结果:
边栏推荐
猜你喜欢
随机推荐
手把手教你编写性能测试用例
Leecode-205. 同构字符串
JVM内存和垃圾回收-10.直接内存
重估HR SaaS:一体化后的新三年
Linux安装Oracle和postgrepSQL数据库
Description of AirFlow
数据库的备份与恢复「建议收藏」
【数据存储】signed,unsigned到底怎么区分?如何计算?
hql语言
基于ABP的AppUser对象扩展
Leetcode82. 删除排序链表中的重复元素 II
[NCTF2019]True XML cookbook-1|XXE漏洞
Next.js获取路由参数及styled-jsx 的使用
深入理解Aarch64内存管理
【猜凶手,猜名次,杨辉三角】经典小学奥数的代码逻辑是什么?
NTP SERVICE TASK 在GWserver配置、启用NTP服务,为当前环境提供时钟同步服务,Client主机可以从该服务器同步时间。
AppUser object extension based on ABP
聚焦热点 | ISC 2022软件供应链安全治理与运营论坛圆满落幕
基于ABP的AppUser对象扩展
ES6 Beginner to Mastery #15: Generator Usage