狼牙恐蛇鳗:为什么我输入n后就进入死循环了

来源:百度文库 编辑:中科新闻网 时间:2024/04/27 10:03:53
#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);