当前位置:网站首页>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;
}
运行结果:
边栏推荐
猜你喜欢
【C语言】通讯录《静态内存版本》
LSTM-based distributed energy generation prediction (Matlab code implementation)
CST Studio Suite 2021软件安装包和安装教程
上交所实时行情文件汇总
字节技术面都过了,薪资都谈好了20K*13结果还是被刷了,问HR原因是。。。
【Infiltration tool】Browser data export tool
WPF DataGrid 使用数据模板
数字钱包红海角逐,小程序生态快速引入可助力占领智慧设备入口
The technical aspects of the byte have been passed, and the salary has been negotiated for 20K*13, but the result is still being brushed. I asked the HR why...
Leetcode79. 单词搜索
随机推荐
Kubernetes 60个为什么
nfs配置
知行合一的时候
考柏的感慨
第十二,十三章 mysql数据类型,视图的课后练习
技术分享 | 接口自动化测试如何处理 Header cookie
今日睡眠质量记录61分
Copper's emotion
【问题解决】训练和验证准确率很高,但测试准确率很低
pytest:如何在测试中编写和报告断言
deepstream学习笔记(三):deepstream-imagedata-multistream解析与接入适配yolov5模型测试
Solidity 智能合约入门
C语言--数据的存储(上)
[Cloud native] Kubernetes orchestration tools
服务发现@EnableDiscoveryClient
abicc 知:API compatibility report 介绍
Distributed database problem (2): data replication
收银管理软件如何做好员工管理?
【「收藏」Oracle 数据库安装】
CST Studio Suite 2021软件安装包和安装教程