c死循环怎么写( 二 )


void main()
{
int a,b,c,d,e,sum;
for(a=1;;a++)
for(b=1;;b++)
for(c=1;;c++)
for(d=1;;d++)
for(e=1;;e++)
if(a==(sum-1)/5&&b==(a-1)/5&&c==(b-1)/5&&d==(c-1)/5&&e==(d-1)/5)
{
cout<<sum;
goto l1;
}
l1:
cout<<"this is end"<<endl;
}
多层for循环里,在最里层的break只能跳出最里层的for循环,就是当前层的break只能跳出当前的循环 。你只有一个break,跳出了e的循环,还有a,b,c,d的,所以会死循环 。可以用goto语句,不过visual studio貌似不支持goto,也可以设置一个Boolean得变量,程序如下
#include <iostream>
using namespace std;
void main()
{
int a,b,c,d,e,sum;
bool x = true;
for(a=1;x;a++)
for(b=1;x;b++)
for(c=1;x;c++)
for(d=1;x;d++)
for(e=1;;e++)
if(a==(sum-1)/5&&b==(a-1)/5&&c==(b-1)/5&&d==(c-1)/5&&e==(d-1)/5)
{
cout<<sum;
x = false;
break;
}
}
6.c语言死循环#include <stdio.h>
void main()
{
int m,n,a;
scanf("%d,%d",&m,&n);
if(m<n)
{
for(a=m;a>0;a--)
{
if(m%a==0&&n%a==0)
{
printf("%d",a);break;
}
}
}
else if(m>n)
{
for(a=n;a>0;a--)
{
if(n%a==0&&m%a==0)
【c死循环怎么写】{
printf("%d",a);break;
}
}
}
else
{
printf("%d",n);
}
}
你那个用while如果找不到最大公因数就一直没有break出不来,死循环 。
而且你的scanf函数中取得数据有误,没有分隔符程序不知道你输入的数据如何分开,
再者输入数据不能是负数否则也死循环,改成上面的样子就可以了
7.C语言程序死循环问题出在了这一句 。
scanf("=%d",&b);
你之前输入了一个数字之后,有一个回车,在这里就永远匹配不到“=”了,所以死循环 。改成
scanf(" %d",&b);
之前加一个空格来吸收回车就好了 。
源码如下:
#include "stdio.h"
#define a 10
int main(void)
{
int b,c;
printf("请输入一个数\n");
scanf("%d",&b);
while(b>0)
{
c=b+a;
printf("你输入的数%d加十=%d\n",b,c);
scanf(" %d",&b);
printf("这玩神马点的\n");
}
printf("game ovre");
return 0;
}

c死循环怎么写

文章插图