结构数组选择排序
来源:互联网 发布:知乎如何添加图片 编辑:程序博客网 时间:2024/05/21 23:38
/// @file exam_1_6.c/// @brief /**exam_1_6 *从键盘输入5个用户的数据,包括:姓名和电话号码要求按姓名排序后,输出用户的全部数据。*/#include <windows.h>#include <stdlib.h>#include <stdio.h>#include <crtdbg.h>#include <conio.h>typedef struct _tag_userInfo{ char cName[31]; char cTelSn[20];}TAG_USERINFO;void fnInputUserDataAndParse();void fnInputUserData(TAG_USERINFO* pInfo, int iPos);void fnSortUserData(TAG_USERINFO* pInfoAry, size_t nSizeAry);void fnPrintUserData(TAG_USERINFO* pInfo, int iPos);int main(int argc, char *argv[ ], char *envp[ ]){ fnInputUserDataAndParse(); printf("END, press any key to quit\n"); getchar(); return 0;}void fnInputUserDataAndParse(){ int i = 0; TAG_USERINFO userData[5]; for (i = 0; i < sizeof(userData) / sizeof(TAG_USERINFO); i++) { fnInputUserData(&userData[i], i); } fnSortUserData(userData, sizeof(userData) / sizeof(TAG_USERINFO)); printf("after sort:\n"); for (i = 0; i < sizeof(userData) / sizeof(TAG_USERINFO); i++) { fnPrintUserData(&userData[i], i); }}void fnInputUserData(TAG_USERINFO* pInfo, int iPos){ printf("please input user No.%d's Name:", iPos); scanf("%30s", pInfo->cName); ///< safe input fflush(stdin); printf("please input user No.%d's telSn:", iPos); scanf("%19s", pInfo->cTelSn); ///< safe input fflush(stdin); printf("\n");}void fnSortUserData(TAG_USERINFO* pInfoAry, size_t nSizeAry){ size_t n1 = 0; size_t n2 = 0; size_t nIndexMax = 0; int iResult = 0; TAG_USERINFO TmpInfo; for (n1 = 0; n1 < nSizeAry - 1; n1++) { nIndexMax = n1; for (n2 = n1 + 1; n2 < nSizeAry; n2++) { iResult = strcmp( ((TAG_USERINFO*)(pInfoAry + n1))->cName, ((TAG_USERINFO*)(pInfoAry + n2))->cName); if (iResult < 0) { nIndexMax = n2; } } if (nIndexMax != n1) { memcpy(&TmpInfo, (pInfoAry + n1), sizeof(TAG_USERINFO)); memcpy((pInfoAry + n1), (pInfoAry + nIndexMax), sizeof(TAG_USERINFO)); memcpy((pInfoAry + nIndexMax), &TmpInfo, sizeof(TAG_USERINFO)); } }}void fnPrintUserData(TAG_USERINFO* pInfo, int iPos){ _ASSERT(NULL != pInfo); printf("user No.%d's Name: %s\n", iPos, pInfo->cName); printf("user No.%d's telSn: %s\n", iPos, pInfo->cTelSn); printf("\n");}
0 0
- 结构数组选择排序
- 数组排序--选择排序
- 数组排序-选择排序
- 数组排序---选择排序
- 结构体选择排序
- 数组的选择排序
- java 数组选择排序
- java数组选择排序
- java数组选择排序
- 数组的选择排序
- 选择排序----数组实现
- 数组 选择法排序
- 数组选择排序法
- 数组之选择排序
- 数组-选择排序
- 数组选择排序
- 数组选择排序2
- 数组-选择排序
- MFC操作注册表
- TUST项目知识点总结(Android端V1.0)
- Unity3D面试题整合
- mysql之index condition pushdown(icp) 索引条件推
- websphere7下报错:javax.management.MalformedObjectNameException: Invalid character 的解决办法
- 结构数组选择排序
- yum出现“No module named yum”错误解决方法
- Hadoop自带WordCount.java程序
- 服务器拒绝了您发送离线文件
- iOS--实现UIView的抖动效果-类似Mac上密码输入错误效果
- sip服务器分布式负载均衡之opensip
- Git多个SSH KEY的管理以及TortoiseGit免用户名和密码提交
- c#地址
- MySql使用CURRENT_TIMESTAMP