C语言死循环

打印100以内的素数
用TC
main()
{
int i,j,k;
i=1;
while(i<=100)
for(j=2;j<i;j++)
{
k=i%j;
if(k==0) continue;
else printf("i=%d\t",i);}
i++;
}
结果是死循环·为什么
看来是TC的问题
我复制第一位的答案
结果还是死循环

绝对不是TC的错。

1、if(k==0) continue;
应该break而不是continue

2、while后边少了一个{
i++后也少了一个}

使得循环内i得不到变化,所以死循环。

3、不应该那么打印。
正确代码如下:

#include<stdio.h>
void main()
{
int i,j,k;
i=1;
while(i<=100)
{
for(j=2;j<i;j++)
{
k=i%j;
if(k==0) break;
}
if(j==i)printf("i=%d\t",i);
i++;
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-03-31
int main()
{
int i,j,k;
i=1;
while(i<=100)
{
for(j=2;j<i;j++)
{
k=i%j;
if(k==0)
continue;
else
printf("i=%d\t",i);
}
i++;
}///这里再加个括号进来,OK
}
第2个回答  2008-03-31
{
k=i%j;
if(k==0) continue;
else printf("i=%d\t",i);}
i++;
}
上面一段程序,其中i++应在括号外
第3个回答  2008-03-31
main()
{
int i,j,k;
i=1;
while(i<=100)
{
for(j=2;j<i;j++)
{
k=i%j;
if(k==0) continue;
else printf("i=%d\t",i);
}
i++;
}
}
第4个回答  2008-03-31
#include<stdio.h>
int main()
{
int i,j,k;
i=1;
while(i<=100)
{for(j=2;j<i;j++)
{
k=i%j; }//这里的大括号
if(k==0) continue;
else printf("i=%d\t",i);//这里的大括号
i++;
}
return 0;
}
你那也不是死循环.不信你试试,就让它循环

C语言中的死循环是什么意思
在编程中,一个靠自身控制无法终止的程序称为"死循环"。不存在一种算法,对任何一个程序及相应的输入数据,都可以判断是否会出现死循环。因此,任何编译系统都不做死循环检查。然而,在编程中死循环并不是一个需要避免的问题,相反,在实际应用中,经常需要用到死循环。例如,我们使用的电脑操作系统下的...

死循是什么意思
在编程中,一个靠自身控制无法终止的程序称为“死循环”。例如在C语言程序中,语句“while(1)printf("*");”就是一个死循环,运行它将无休止地打印*号。不存在一种算法,对任何一个程序及相应的输入数据,都可以判断是否会出现死循环。因此,任何编译系统都不做死循环检查。在设计程序时,若遇到死...

C语言中死循环怎么做?
在C语言的循环中,无论是何种循环结构,都会在循环中指明退出条件,这个条件会是一个逻辑运算表达式。 要做死循环,只需把对应的退出条件置为恒为真即可。例:for循环。for循环的判断条件,是for后面括号中的第二条语句。由于for的特殊性,以下两种方式,均可以构建死循环。(1) for(expr1; 1; expr...

C语言中的死循环是什么意思?
死循环是循环条件永远能够得到满足,循环永远进行下去。这种循环一旦进入就出不来了 所以要设置跳出条件 例如for(i=0;i<100;i++)if(i>=50)i=0;在这个循环中i永远无法达到100,故循环永无止境,这个循环就是死循环。

c语言,为何这是死循环?
因为1表示真),而它的循环体是后面跟着的那个语句:也就是printf("%d",k-=3);所以程序会一直运行printf("%d",k-=3); 永远出不来。这条语句就相当于 while(1){ printf("%d",k-=3);} 加上大括号里面可以加多个语句作为循环体,如果没加大括号就是while后面的第一句。

C语言中什么叫死循环?怎么避免?
死循环就是不停的执行for循环,while循环。避免死循环要看下死循环是如何产生的,例如在C语言程序中,语句“while(1)printf("*");”就是一个死循环,运行它将无休止地打印*号。产生死循环的情况有:▪ 逻辑错误 ▪ 变量处理错误 ▪ 奥尔德森循环 ▪ 无穷递归 你可以看下...

如何用C语言判断一个循环是不是死循环?
因为省略了 "判断循环终止条件语句",因此是一个死循环。B. while(x=1){x=1;} 这是 while 语句,“判断循环终止的语句”为:x=1。语句是一个赋值语句,而不是逻辑条件(x==1)语句。这个赋值语句的值,也就是变量 x 的值,恒等于 1。不为 0 的值,在 C 语言里面都是"真"的,因此这个...

c语言 死循环
所以,程序会一直处于循环中。为死循环。B:条件语句为空,也无象A中的BREAK跳出语句,所以为无限循环。也叫死循环。C:是死循环。因为K 始终会大于10000,所以, 这个程序会无限的执行下去。属于死循环 D:不是,S不断的减小。--S表示S每次都自动减少1。当S变成0的时候,while(s)里面的S就不会...

c语言一个死循环中为什么执行完一个功能函数就退出了?
1、你在死循环中包含了break语句或return,比如if满足某个条件就执行break或者return。2、你在循环中或调用的函数中,执行了exit函数,直接结束了整个程序。3、你的代码有错,比如使用野指针,越界访问数组等不可控行为。4、内存不足,程序终止,比如循环malloc申请内存,但没有释放,又或者调用递归函数...

C语言到#结束,但为什么我的程序会陷入死循环啊?
因为是在while前输入的数据,循环过程中这个数据一直存在。把scanf("%f%c%f",&a,&b,&c); while(b!='#'){改成while(scanf("%f %c%f",&a,&b,&c)==3 && b!='#'){。把所有的continue;删除。

相似回答
大家正在搜