问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
#include<stdio.h>
#include<stdlib.h>
typedef struct link_list
{
int num;
char sex[20];
char name[30];
struct link_list* next;
}STU;
void creat(STU* head)//(创建链表)
{
int n;
STU* p = NULL, * q = head;
while (scanf("%d", &n), n >= 0)
{
p = (STU*)malloc(sizeof(STU));
p->num = n;
scanf("%s%s", p->sex, p->name);
q->next = p;
q = p;
}
q->next = NULL;
}
void print(STU* head)//(输出链表)
{
while (head != NULL)
{
printf("%d\n%s\n%s", head->num, head->sex, head->name);
head = head->next;
}
}
STU* search(STU* head, int n)//(查找链表(输入学号))
{
while (head != NULL)
{
if (head->num == n)
{
print(head);
return head;
}
head = head->next;
}
return NULL;
}
void charu(STU* head, int n)//(插入链表(输入学号,插在序号前))
{
STU* x = (STU*)malloc(sizeof(STU));
scanf("%d %s %s", &x->num, x->sex, x->name);
STU* b = head->next;
while (b->num != n)
{
b = b->next;
head = b;
}
x->next = b;
head->next = x;
}
void deleted(STU* head, int n)//删除链表(输入学号)
{
STU* p = head->next;
while (p && p->num != n)
{
head = p, p = p->next;
}
if (p)
{
head->next = p->next;
free(p);
}
print(head);
}
int main()
{
STU* head = (STU*)malloc(sizeof(STU));
creat(head);
printf("输出链表请扣1\n链表插入请扣2\n链表查找请扣3\n链表删除请扣4\n输入-1结束\n然后输入学号,如果只需输出链表学号可随意输入");
int requst, n;
scanf("%d%d", &requst, &n);
switch (requst)
{
case 1:print(head); break;
case 2:charu(head, n),print(head); break;
case 3:search(head, n); break;
case 4:deleted(head, n); break;
运行结果及报错内容
口C:Users186159Documents\Untitled1.exe 口 X
1faa
输出链表请扣1
链表插入请扣2
链表查找请扣3
表删除请扣4
输入-1结束
后输入学号,如果只需输出链表学号可随意输入1
10
11098288
STRINGDefault1
aa
Process exited after 24.79 seconds with return value 0
青按任意键继续
我的解答思路和尝试过的方法
我想要达到的结果
把图上的乱码去掉