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

边栏推荐
猜你喜欢

ECCV 2022 | 微软开源TinyViT :搞定小模型的预训练能力

2022中高级Android面试题汇总来助你通过面试

Leetcode79. 单词搜索

【猜凶手,猜名次,杨辉三角】经典小学奥数的代码逻辑是什么?

Redis-基本介绍/linux下环境配置/配置文件

CST Studio Suite 2021软件安装包和安装教程

Next.js获取路由参数及styled-jsx 的使用

组件传值-作用域插槽

LSTM-based distributed energy generation prediction (Matlab code implementation)

Digital wallets, red sea ecological rapid introduction of small programs can help capture device entry wisdom
随机推荐
构建平衡二叉树「建议收藏」
Fury:一个基于JIT动态编译的高性能多语言原生序列化框架
selenium和驱动安装
3.1 - 程序设计语言 3.2 - 高级语言的特点及引用 3.3 - 静态/动态类型语言
Description of AirFlow
[C language] In-depth understanding of pointers and arrays (issue 4)
vmware Exsi 网卡配置
Eureka自我保护
手把手教你编写性能测试用例
E - Sugoroku 3(期望dp)
【猜凶手,猜名次,杨辉三角】经典小学奥数的代码逻辑是什么?
【「收藏」Oracle 数据库安装】
ETCD快速入门-02 ETCD安装
ES6 Beginner to Mastery #15: Generator Usage
conda新建环境时报错NotWritableError: The current user does not have write permissions
Creo5.0入门教程赠素材
【云原生】Kubernetes编排工具精讲
3.9 - 正规表达式和正规集 3.10 - 有限自动机
Redis 非关系型数据库学习(一) ---- Redis 的安装
JSP简介