交通工程建设理论文章:为什么我输入n后就进入死循环了

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 23:37:20
#include <stdio.h>
void main()
{
long max,a[3],i=0,settle;
l: printf("请输入三个整数\n");
for (i=0;i<3;i++)
scanf("%ld",&a[i]);
max=a[0];
for (i=0;i<3;i++)
if (a[i]>=max) a[0]=a[i];
printf("max=%ld\n",a[0]);
printf("你还要输入三个数吗?(y/n)");
scanf("%*d%d",&settle);
settle=(settle>='A' && settle <='B') ? settle=settle+32 : settle;
if (settle='y')
{
i=0;
goto l;
}
else printf("已完成任务,请关闭程序");
}

我按我的想法给你改了以下啊
定义的时候有:1,把settle定义为char型
2,if(settle=='y')
还有个建议,尽量避免用GOTO语句

看看我给你的程序就行
记得加分哦
#include <stdio.h>
void main()
{
long max,a[3],i=0,settle;
l: printf("请输入三个整数\n");
for (i=0;i<3;i++)
scanf("%ld",&a[i]);
max=a[0];
for (i=0;i<3;i++)
if (a[i]>=max) a[0]=a[i];
printf("max=%ld\n",a[0]);
printf("你还要输入三个数吗?(y/n)");
scanf("%c",&settle);
settle=(settle>='A' && settle <='B') ? settle=settle+32 : settle;
if (settle='y')
{
i=0;
goto l;
}
else printf("已完成任务,请关闭程序");
}

scanf("%*d%d",&settle);

换成

scanf("%c",&settle);