void choose(book*h) { int i; int a = 1; while (a>0) { menu(); printf("请选择:"); scanf("%d",&i); switch (i) { case 1: h=GreatLink(); break; case 2: PrintLink(h); break; case 3: Insert(h); break; case 4: Search(h); break; case 5: revise(h); break; case 6: delete(h); break; case 0: printf("【退出】\n"); printf("退出成功!感谢您的使用!\n"); system("pause"); exit(0); break; default: printf("无效的命令!\n"); a = -1; break; } } }
时间: 2024-04-03 20:34:17 浏览: 14
这段代码是一个简单的控制台图书管理系统。函数 `choose` 用于提供一个菜单供用户选择,读取用户的输入并根据不同的选择调用不同的函数。具体来说,这个函数会循环打印菜单,要求用户输入选择,并根据用户的输入调用相应的函数。下面是菜单的选项和对应的功能:
1. 创建图书链表:调用 `GreatLink()` 函数创建一个图书链表,并将其返回。
2. 输出图书链表:调用 `PrintLink(h)` 函数,打印当前的图书链表。
3. 插入图书:调用 `Insert(h)` 函数,要求用户输入新的图书信息并将其插入到图书链表中。
4. 查找图书:调用 `Search(h)` 函数,要求用户输入需要查找的图书信息并在图书链表中查找。
5. 修改图书信息:调用 `revise(h)` 函数,要求用户输入需要修改的图书信息并在图书链表中进行修改。
6. 删除图书:调用 `delete(h)` 函数,要求用户输入需要删除的图书信息并将其从图书链表中删除。
0. 退出:打印退出信息并结束程序。
如果用户输入的不是菜单选项中的数字,则会提示无效的命令并退出循环。
相关问题
#include<stdio.h> #include<stdlib.h> void main() { int *a, *b, *c; a=b=c=(int *)malloc(sizeof(int)); *a=1; *b=2; *c=3; a=b; printf("%d%d%d \n", *a, *b, *c); }
这段代码存在一些问题,我帮你进行修正:
```c
#include <.h>
#include <stdlib.h>
int main() {
int *a, *b, *c;
a = b = c = (int *)malloc(sizeof(int));
*a = 1;
*b = 2;
*c = 3;
b = a; // 修改为 b = a;
printf("%d %d %d\n", *a, *b, *c);
free(a); // 释放动态分配的内存
return 0;
}
```
修正后的代码输出为 "1 1 3"。
修正的问题:
1. 将 `void main()` 修改为 `int main()`,使得 `main` 函数返回一个整数类型的值。
2. 在 `printf` 函数中,修改为 `%d %d %d`,使得输出的整数之间有空格分隔开来。
3. 添加了 `free(a);` 语句,释放动态分配的内存,避免内存泄漏。
6、以下程序的输出结果为。 #include "stdio.h" int fun(char *p) { char *s=p; while (*s!= E' )s++; return s-p; } int main(void) { int i: char all=" ABCDEFG" ¡=fun(a); printf("%2d" i); return 0; A
这个程序存在一些语法错误,也无法通过编译。其中:
1. 变量 `i` 没有声明类型,应该改为 `int i;`。
2. 字符串 `a` 没有加上双引号,应该改为 `char a[] = "ABCDEFG";`。
3. 函数 `fun` 中的字符串结束符应该是单引号,而不是大写字母 E,应该改为 `'\0'`。
在修正这些错误之后,程序的输出结果应该是 7,表示字符串 "ABCDEFG" 的长度(不包括字符串结束符)。
正确的代码如下:
```c
#include <stdio.h>
int fun(char *p) {
char *s = p;
while (*s != '\0') s++;
return s - p;
}
int main(void) {
int i;
char a[] = "ABCDEFG";
i = fun(a);
printf("%2d", i);
return 0;
}
```