当前位置:网站首页>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;
} 运行结果:

边栏推荐
- Tensor flow 踩坑记
- Redis-基本介绍/linux下环境配置/配置文件
- Leetcode80. 删除有序数组中的重复项 II
- 数字孪生电力系统,可视化应用实现科学调度的电子设备
- Digital wallets, red sea ecological rapid introduction of small programs can help capture device entry wisdom
- Today's sleep quality record 61 points
- NotWritableError: The current user does not have write permissions when conda creates a new environment
- 【剑指offer】第一题 第二题
- 无源晶振负载电容值CL匹配方法及说明
- 线程的同步与互斥
猜你喜欢

数字孪生智慧制造生产线项目实施方案,平台认知与概念

Project (7) - PolarSeg point cloud semantic segmentation

Web性能测试模型小结

游泳馆系统次卡的设置有哪些细节?

共创 Ray 中文社区,Ray Forward Meetup 2022 直播邀你参加!

ES6 Beginner to Mastery #13: Extension Methods for Arrays 2
![[C language] Address book](/img/56/a72900c22b965947ee88256d8f6c21.jpg)
[C language] Address book "Static Memory Version"

Eureka protects itself

【问题解决】训练和验证准确率很高,但测试准确率很低

使用C语言实现静态链表
随机推荐
LSTM-based distributed energy generation prediction (Matlab code implementation)
MATLB|和她跌宕起伏最终到达人生之峰【浪漫旅途】
[NCTF2019]True XML cookbook-1|XXE漏洞
Pinduoduo store operation must know to leave a little knowledge of operation
JVM内存和垃圾回收-10.直接内存
redis分布式锁代码示例
Eureka protects itself
基于 LSTM 的分布式能源发电预测(Matlab代码实现)
新开窗口 展示协议
字节技术面都过了,薪资都谈好了20K*13结果还是被刷了,问HR原因是。。。
router路由
hql语言
20220808-一些想法
大龄测试员刚迈过了 35 岁这个“坎儿”,和大家说点儿心里话
天猫全网商品详情封装接口
[SUCTF 2019]CheckIn (.htaccess和.user.ini)
JSP简介
Project (7) - PolarSeg point cloud semantic segmentation
2022中高级Android面试题汇总来助你通过面试
聚焦热点 | ISC 2022软件供应链安全治理与运营论坛圆满落幕