#define _CRT_SECURE_NO_WARNINGS#include "stdio.h"#include "string.h"struct shuju { char p_name[100], c_name[100], zhiwu[100], num[100]; int age;};void input(struct shuju* p, int m) { int i; for (i = 0; i < m; i++, p++) { printf("请输入第%d个客户的信息:\n", i+1); printf("请输入客户姓名:"); scanf("%s", p->p_name); printf("请输入客户年龄:"); scanf("%d", &p->age); printf("请输入客户手机号:"); scanf("%s", p->num); printf("请输入客户公司名:"); scanf("%s", p->c_name); printf("请输入客户职务:"); scanf("%s", p->zhiwu); }}void P(struct shuju* a, int m) { struct shuju* p; int i, j; for (i = 0; i < m; i++) { for (j = 0; j < m - i - 1; j++) { if (strcmp(a[j].p_name, a[j + 1].p_name) > 0) { p = &a[j]; a[j] = a[j + 1]; a[j + 1] = *p; } } }}void output(struct shuju* p, int m) { int i; printf("姓名\t年龄\t手机号\t公司名\t职务\n"); for (i = 0; i < m; i++) { printf("%s\t%d\t%s\t%s\t%s\n", p[i].p_name, p[i].age, p[i].num, p[i].c_name, p[i].zhiwu); }}int main() { int n; struct shuju c[100]; printf("请输入客户个数:"); scanf("%d", &n); input(c, n); P(c, n); output(c, n); return 0;}
时间: 2024-03-30 12:33:35 浏览: 46
这段代码是用来实现客户信息的录入、排序和输出的。其中定义了一个结构体 `shuju`,包含了客户的姓名、年龄、手机号、公司名和职务。通过 `input` 函数实现了对客户信息的录入,通过 `P` 函数实现了对客户信息按照姓名进行排序,最后通过 `output` 函数输出客户信息。在 `main` 函数中,先输入客户个数,然后调用 `input` 函数录入客户信息,再调用 `P` 函数进行排序,最后调用 `output` 函数输出客户信息。
相关问题
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #include <string.h>
`#define _CRT_SECURE_NO_WARNINGS 1` 是一个预处理器指令,通常用于 MSVC(Microsoft Visual C++)编译器环境中。这个宏定义的作用是关闭或抑制标准输入输出库(C run-time library, CRT)中的安全警告。`_CRT_SECURE_NO_WARNINGS` 针对的是那些在使用 `scanf`, `fopen`, `strcpy`, `strcat`, 等函数时可能出现的安全隐患,比如缓冲区溢出等,如果启用了这个宏,编译器就不会生成这些警告信息。
当你在代码中包含这些头文件,如 `<stdio.h>`, `<stdlib.h>`, 和 `<string.h>`,并且想要在编译过程中避免这些安全警告,可以先定义这个宏。然而,这并不意味着错误被忽视了,而是你需要自行检查代码以确保安全处理这些问题。
相关问题:
1. 宏定义 `_CRT_SECURE_NO_WARNINGS` 的作用是什么?
2. 这个宏通常用在哪些编译环境下?
3. 关闭警告可能带来的风险是什么?如何平衡安全和警告信息?
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>
这段代码是一个C语言的程序代码,包含了预处理器指令和头文件的引用。其中:
- `#define _CRT_SECURE_NO_WARNINGS`指令用于禁用某些函数的安全检查。
- `<stdio.h>`头文件提供了输入输出函数的定义,例如`printf()`和`scanf()`等。
- `<string.h>`头文件提供了字符串函数的定义,例如`strcpy()`和`strlen()`等。
这些指令和引用是通常情况下编写C程序所需的。在具体的程序代码中,这些函数可以被调用以完成各种任务。
阅读全文