我的程序在vc++上不能运行,请高手指点下是goto用错了吗?只想用goto做哈

来源:百度知道 编辑:UC知道 时间:2024/05/20 09:01:59
#include<stdio.h>
main()
{ int t,q,w,a[2][5]={150001,150002,150003,150004,150005,1000,500,230,700,998};
re:printf("请输入您要查询的零件编号:\n");
scanf("%d",&t);
if((t>150005)||(t<150001))
{printf("您输入的是错误的零件编号,请选择重新输入(Y),退出查询(N)");
scanf("%d",&q);
if(q='Y')
goto re;
if(q='N')
goto end;}
else
printf("%d %d",a[0][t-150001],a[1][t-150001]);
printf("您还要继续查询吗(Y/N)?");
scanf("%c",&w);
if(w='Y')
goto re;
if(w='N')
goto end;
end:printf("查询结束");
}

是运行到scanf("%d", &q)时你输入了字符才出错的,所以你可以把%d改成%c,同时给q附个初值0即可。另外if(q='Y')写错了,应该用==而不是=。
if(w='Y')也是。建议给所有变量能附初值的就附个初值。

q的类型改成char, if语句里=改成==

说一句实话,goto不适合我们用