‘壹’ c语言 为啥无限循环了
i的类型不对,至少应该是short, 一般定义为int
char的范围远远小于210,所以永远达不到210,就循环了
‘贰’ C语言,for和while搭配导致无限循环
原因楼上已经说了。
改正方法我觉得可以把while循环的计数用别的变量来计。
例:
#include <stdio.h>
int main ()
{
int n,k,j,sum=0,m=0;
for (n=1;n<=3;n++)
{
k=n;
j=n;
while (j>1) //用j来计数
{
m=j-1;
k=k*m;
j=j-1;
}
sum=sum+k;
}
printf("%d",sum);
return 0;
}
‘叁’ 一个C语言判断循环语句是不是无限循环
A) for(K=-1;-10<k<0;k--)
这里有个错误,K=-1应该是小写k
不是无限循环,k<-10后-10<k<0不成立,退出
B) for(i=1,j=10;i-j;i++,j--)
是无限循环,i-j=0时i-j为假才能退出,当i=5时,j=6,而下一循环i=6,j=5,i-j永不为0
C) for(k=1;k=10;k++)
是无限循环,k=10是赋值表达式,永为真
D) for(k=1;k>0;K++)
是无限循环,k从1开始递增,所以k>0永为真
‘肆’ C语言for循环语句
从for语句的写法看,这是一个死循环。因为进入循环后,前面定义的k=-1被覆盖,k从0开始,每循环一次k减1,它的取值会是0、-1、-2、-3、……,而循环的终止条件是k=1,这是一个永远取不到的值,所以是死循环。
而本例在实际运行中,循环体内有一个break,是跳出循环的命令,所以,该循环仅仅运行一次,就完成了,程序也就结束了。
‘伍’ c语言if else嵌套for循环语句为什么会无限循环
int
main()
{
inti,j,n;
printf("Entermatrixsize:");
scanf("%d",&n);
for(j=1;j<=n;j++)
{
for(i=1;i<=n;i++)
{
if(j==1||i>j-1)//j=1是赋值的意思.
{
printf("+ ");
}
else
{
printf("- ");
}
}
printf(" ");
}
//getchar();
return0;
}
➜ ~ vim d.c
➜ ~ indent -gnu d.c
➜ ~ vim d.c
➜ ~ gcc d.c
➜ ~ ./a.out
Enter matrix size: 4
+ + + +
- + + +
- - + +
- - - +
‘陆’ c语言 for循环次数
#include<stdio.h>
void
main()
{
int
i,j;
int
m=0,n=0;
long
sum=0;
for(i=1;i<=20;i++)
{m=m+1;
for(j=1;j<=3;j++)
{n=n+1;
sum=sum+(i+1)*(i+1)*(j+2);
}
}
*/内循环语句多的时候,就不能省略大括号了/*
printf("sum
is:%ld\n",sum);
printf("外循环的次数:%d,内循环的次数:%d\n",m,n);
}
‘柒’ C语言 for无限循环
for循环第二个分号前放的是循环条件,它的值是一个逻辑型,你不论k=1还是k==1最后看的是这条语句是为0还是为1;
‘捌’ 关于C语言简单的FOR循环 i++变成i--怎么就无限循环了
你好 : i++ 变成i-- 的时候 应为你的i初始值为0 而且--以后i永远应不会大于20所以无限循环 而i++和++i前者是先i自加然后在加其他的 后者是后加加其他的然或自加
‘玖’ C语言 double ,无限循环
精度问题, double型和int型比较就容易出这问题, 最好用> < 这样的符号.
把 i != 10改成i < 10应该就行了..