jinyun72 2019-05-25 01:23 采纳率: 0%
浏览 1187

使用了未初始化的局部变量”t“在第74行

#include //(1)
#include //(2)
typedef int queuetype;//(3)
queuetype num = 1;//(4)
typedef struct qnode//(5)
{//(6)
queuetype data;//(7)
struct qnode next;//(8)
}QNode;//(9)
typedef struct//(10)
{//(11)
QNode *front, *rear;//(12)
} QuType;//(13)
void initlqueue(QuType *L)//(14)
{//(15)
L->front = L->rear = NULL;//(16)
}//(17)
void rudui(QuType *L, queuetype e)//(18)
{//(19)
QNode *p = (QNode
)malloc(sizeof(QNode));//(20)
p->data = e;//(21)

p->next = NULL;//(22)
if (!L->front)//(23)
{//(24)
L->front = p;//(25)
}//(26)
if (L->rear)//(27)
L->rear->next = p;//(28)
L->rear = p;//(29)
num++;//(30)
}//(31)
void shandui(QuType L)//(32)
{//(33)
if (L->front)//(34)
{//(35)
QNode *p;//(36)
p = L->front;//(37)
printf("第%d位顾客已经点餐!\n", p->data);//(38)
L->front = p->next;//(39)
if (!p)//(40)
L->rear = NULL;//(41)
else//(42)
free(p);//(43)
}//(44)
else//(45)
{//(46)
num = 0;//(47)
printf("所有的顾客都已点餐完毕!\n");//(48)
}//(49)
}//(50)
void xianshi(QuType *L)//(51)
{//(52)
QNode *p = L->front;//(53)
printf("输出所有排队者的序号:\n");//(54)
while (p)//(55)
{//(56)
printf(" %d\n", p->data);//(57)
p = p->next;//(58)
}//(59)
if (!L->front)//(60)
printf("顾客可坐下点餐!\n");//(61)
}//(62)
void chakan(QuType*L,queuetype e)//(63)
{//(64)
QNode *p = L->front, *q,*t;//(65)
while(p&&p->data != e)//(66)
{//(67)
t = p;
p = p->next;//(69)
}//(70)
if(p->data == e)//(71)
{//(72)
printf("fine!%d号即可进行点餐!\n", p->data);//(73)
q = t->next;//(74)
if (q->next)//(75)
t->next = q->next;//(76)
if (t->next == L->rear)//(77)
t->next = L->rear = NULL; free(q);//(78)
}//(79)
else//(80)
printf("队列中无此人!无需删除操作!\n");//(81)
}//(82)
//链队类型
void CanTing()//(83)
{//(84)
int sel, flag = 1;//(85)
QuType *qu = (QuType
)malloc(sizeof(QuType));//(86)
queuetype quik = 0;//(87)
initlqueue(qu);//创建空队(88)
printf("*******欢迎您的到来!******\n");//(89)
printf("*******请排队就餐!******\n");//(90)
while (flag == 1) //循环执行(91)
{//(92)
printf("1:排队 2:点餐 3:查看排队 4:VIP顾客 5:下班 请选择:");//(93)
scanf_s("%d", &sel);//(94)
switch (sel)//(95)
{ //排队,入队(96)
case 1: rudui(qu, num); //(97)
printf("\n排队成功!\n"); //(98)
break;//(99)
case 2: shandui(qu);//(100)
printf("\n");//(101)
break; //点餐,出队(102)
case 3: xianshi(qu); //(103)
break; //显示排队顾客(104)
case 4://(105)
{//(106)
printf("若您需要马上就点,请输入您的号:");//(107) scanf("%d",&quik);//(108)
chakan(qu,quik);//(109)
printf("\n");//(110)
} //(111)

break; //任意顺序点餐(112)
case 5: //(113)
{//(114)
printf("抱歉。已下班,营业结束,欢迎下次光临!\n\n");//下班(115)
flag = 0; //退出(116)
break;//(117)
}//(118)
default: //(119)
printf("输入错误,请重新输入!\n\n"); //(120)
continue;//(121)
}//(122)
}//(123)
}//(124)
void main()//(125)
{//(126)
CanTing();//(127)
}//(128)


  • 写回答

1条回答 默认 最新

  • threenewbee 2019-05-25 09:25
    关注

    QNode *p = L->front, *q,*t;//(65)
    这里t没有初始化

    t = p;
    虽然有这个,但是这放在了循环里面,如果循环没有执行(循环条件一开始就不满足)

    所以会有这个警告

    为了消除警告,可以在65行后加上一个初始化

    评论

报告相同问题?

悬赏问题

  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题