c语言请问while循环为什么执行不了?

为什么这个程序中间的那个while函数运行不了求大佬帮忙
int main()
{
int m,n,a,x;
char flag;
Polyn pa=0,pb=0,pc;

printf("请输入a的项数:");
scanf("%d",&m);
pa=CreatePolyn(pa,m);
printf("请输入b的项数:");
scanf("%d",&n);
pb=CreatePolyn(pb,n);

printf(" 一元稀疏多项式计算器 \n");
printf(" \n");
printf(" A:输出多项式a B:输出多项式b \n");
printf(" \n");
printf(" C:输出a+b D:输出a-b \n");
printf(" \n");
printf(" E:退出程序 \n");
printf(" \n");

while(a)
{
printf("\n请选择操作:");
scanf(" %c",&flag);
switch(flag)
{

case'A':
case'a':
{
printf("\n 多项式a=");
PrintPolyn(pa);
break;
}
case'B':
case'b':
{
printf("\n 多项式b=");
PrintPolyn(pb);
break;
}
case'C':
case'c':
{
pc=AddPolyn(pa,pb);
printf("\n a+b=");
PrintPolyn(pc);
break;
}
case'D':
case'd':
{
pc=SubtractPolyn(pa,pb);
printf("\n a-b=");
PrintPolyn(pc);
break;
}
case'E':
case'e':
{
printf("\n 感谢使用此程序!\n");
DestroyPolyn(pa);
DestroyPolyn(pb);
a=0;
break;
}
default:
printf("\n 您的选择错误,请重新选择!\n");
}
return 0;
}
}

代码思路上问题不大。switch
case就是判断一种情况啊。只判断成绩属于abc还是不及格。有什么问题吗?while的判断条件是常数1。你是不是缺了个返回的函数。你这样就是进行了一次判断,没有返回吧?话说pause这个命令我还真没用过,感觉会停在pause不再进行while循环了吧?有没有转跳之类的命令可以用?干嘛非要用个while循环,转跳回去多好。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-25
a没有赋予初始值,默认为0,0代表假值,所以while(a)语句不会执行,改成int a=1就好了本回答被提问者采纳
第2个回答  2020-03-25
a定义之后就没有 初始化,赋值
还有你的 那些自定义函数在哪里?
CreatePolyn 。。。
第3个回答  2020-03-24
a没有初始化,while(a)不知道a的值
第4个回答  2020-03-25
.....................................................................
相似回答