警告信息里不是说得明明白白的吗
不要用这种不伦不类的翻译,还不如直接看英文
把程序贴出来呀
#include <stdio.h>
typedef int DataType;
typedef struct NodeT
struct NodeType *next;
} lqnode;
typedef struct {
lqnode *front, *rear;
} LinkQueue;
LinkQueue *q;
int chazhao(LinkQueue *q, int x);
int SetNULL(LinkQueue *q);
void AddQ(LinkQueue *q, DataType x);
void Add2Q(LinkQueue *q, DataType x);
DataType DelQ(LinkQueue *q);
DataType GetFront(LinkQueue *q);
DataType Getrear(LinkQueue *q);
int add();
void DisQ(LinkQueue *q);
void DaQ(LinkQueue *q);
int Length(LinkQueue *q);
void menu() {
printf("\t\t*******************************\n");
printf("\t\t\t0.退出\n");
printf("\t\t\t1.首次排队取号\n");
printf("\t\t\t2.再次排队取号\n");
printf("\t\t\t3.业务办理结束\n");
printf("\t\t\t4.目前正在办理业务的号码\n");
printf("\t\t\t5.查看前方排队人数\n");
printf("\t\t\t6.大荧幕\n");
printf("\t\t\t7.排队人数\n");
printf("\t\t*******************************\n");
}
int main() {
int x;
int choice;
while (1) {
menu();
printf("请输入操作序号:");
scanf("%d", &choice);
switch (choice) {
case 0:
return 0;
case 1:
SetNULL(&q);
AddQ(&q, &x);
printf("目前排号为:\n");
DisQ(&q);
system("pause");
system("cls");
break;
case 2:
Add2Q(&q, &x);
printf("正在办理业务的号码为:\n");
printf("%d\n", GetFront(&q));
printf("排队号码为:\n");
DaQ(&q);
system("pause");
system("cls");
break;
case 3:
DelQ(&q);
printf("正在办理业务的号码为:\n");
printf("%d\n", GetFront(&q));
printf("排队号码为:\n");
DaQ(&q);
system("pause");
system("cls");
break;
case 4:
printf("正在办理业务的号码为:\n");
printf("%d\n", GetFront(&q));
system("pause");
system("cls");
break;
case 5:
printf("请输入您的号码:\n");
scanf("%d", &x);
printf("前方排队人数为%d\n", chazhao(&q, x));
system("pause");
system("cls");
break;
case 6:
printf("正在办理业务的号码为:\n");
printf("%d\n", GetFront(&q));
printf("排队号码为:\n");
DaQ(&q);
system("pause");
system("cls");
break;
case 7:
printf("排队人数为%d\n", Length(&q) - 1);
system("pause");
system("cls");
break;
default:
printf("您的输入有误,请重新输入!");
system("pause");
system("cls");
break;
}
}
}
int chazhao(LinkQueue *q, int x) {
lqnode *p;
int count = 0;
p = q->front->next->next;
while (p) {
if (p->data == x) {
return count;
} else {
count++;
p = p->next;
}
}
}
int SetNULL(LinkQueue *q) {
lqnode *p;
p = (lqnode *)malloc(sizeof(lqnode));
p->next = NULL;
q->front = p;
q->rear = p;
printf("初始化成功\n");
}
void AddQ(LinkQueue *q, DataType x) {
lqnode *p;
int y;
printf("输入首次要办理业务的人数\n");
scanf("%d", &y);
for (x = 1; x <= y; x++) {
p = (lqnode *)malloc(sizeof(lqnode));
p->data = x;
p->next = NULL;
q->rear->next = p;
q->rear = p;
}
printf("取号成功\n");
}
void Add2Q(LinkQueue *q, DataType x) {
lqnode *p;
int m = 1;
for (x = add(); m <= 1; m++) {
p = (lqnode *)malloc(sizeof(lqnode));
p->data = x;
p->next = NULL;
q->rear->next = p;
q->rear = p;
}
printf("取号成功\n");
}
DataType DelQ(LinkQueue *q) {
lqnode *p;
int x;
if (q->front == q->rear) {
printf("业务办理失败\n");
} else {
p = q->front->next;
x = p->data;
q->front->next = p->next;
if (q->rear == p) {
q->rear = q->front;
}
free(p);
printf("业务办理成功\n");
return x;
}
}
DataType GetFront(LinkQueue *q) {
lqnode *p;
if (q->front == q->rear) {
printf("无法提取,为空队\n");
} else {
p = q->front->next;
return p->data;
}
}
DataType Getrear(LinkQueue *q) {
lqnode *p;
if (q->front == q->rear) {
printf("无法提取,为空队\n");
} else {
p = q->rear;
return p->data;
}
}
int add() {
int x;
x = Getrear(&q) + 1;
return x;
}
void DisQ(LinkQueue *q) {
lqnode *p;
p = q->front->next;
while (p) {
printf("%d\n", p->data);
p = p->next;
}
}
void DaQ(LinkQueue *q) {
lqnode *p;
p = q->front->next->next;
while (p) {
printf("%d\n", p->data);
p = p->next;
}
}
int Length(LinkQueue *q) {
lqnode *p;
int count = 0;
p = q->front->next;
while (p) {
count++;
p = p->next;
}
return count;
}