//因为当除数为 i 时,不一定只能除 n 一次,可能要除好几次,所以要在 i 时找出它的所有倍数
例如:n=100,i=2时,除一次之后,n=50,但是n还可以再除一次2变为25,但是如果没有
while(i!=n)语句,i 在for 循环中增为3 ,就少一个质因子 2,同样当 i 增到 5 时也有两个
#include<stdlibh>
#include<stdioh>
int main()
{
int n,i;
printf("请输入一个正整数!\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<n;i++)
{
while(i!=n)
{
if(n%i==0)
{
printf("%d",i);
n=n/i;
}
else
break;
}
}
printf("%d\n",n);
system("pause");
}
我运行了,解释是GO west,youn 最后没有‘g’
因为你用了while循环
输入之后先是读出ch = 'G'
判断ch是否为'g',
不是所以打印G
接着读下一个字符 得ch=‘O’
判断ch是否为'g',
不是所以打印O
……
到读到g时,ch=‘g’
判断ch是否为'g',
是,所以循环结束g不打印
循环结束,程序结束。
打印过程中为换行或加其他符号,所以是
GO west,youn
你在程序中打印点其他的,或换行就可以很清楚看出来怎么回事了。
比如:
# include <stdioh>
int main(void)
{
char ch;
scanf(" %c",&ch);
while (ch != 'g')
{
printf("%c",ch);
printf("\n"); //换行
scanf(" %c",&ch);
}
return 0;
}
while(1)其中1代表一个常量表达式,while(1) 表示无限循环,除非你设置break等类似的跳出循环语句循环才会中止
while(i--)其中i是一个变量,因此表达式i--有不同的值,依次递减,i--是先取值后减,--i先加后取值,所以i--的值同未执行该自减运算时的i相等。
扩展资料:
while(1) 表示无限循环。
while的语法格式为 :
while(condition)
{
//do something 1
}
//do something 2
condition 为循环条件,每次判断condition是否为真,为真时执行while循环体中的语句块(代码中块1);为假时结束循环,执行后续语句(代码中块2)。
这里condition为1 表示条件永远为真,一直执行循环体内语句。为了结束循环,可以在循环体内满足某些特定条件使用break跳出循环。
如下:
while(1)
{
//do something
if(condition)
{
break;
}
}
参考资料:
while语句的原型是while(表达式)语句,当表达式为非0值时,执行while语句中的嵌套语句。
那么while(1)其中1代表一个常量表达式,他永远不会等于0。所以,循环会一直执行下去。除非你设置break等类似的跳出循环语句循环才会中止
while(i--)其中i是一个变量,因此表达式i--有不同的值,依次递减,i--是先取值后减,--i先加后取值,所以i--的值同未执行该自减运算时的i相等。因此当i为0时,循环会跳出
很容易混淆的是把i--的值误认为i执行自减后的值,可以编个小程序验证下
#include<iostream>
#include<stdlibh>
using namespace std;
int main()
{
int i=1;
while(i--)//此时i=0
{
i--;//执行该语句i为-1
break;
}
cout<<i;
system("pause");
}
输出为-1,说明执行了循环内i--的语句
希望能帮到你
题目没说以什么为输入结束标志的话,一般默认是以EOF的。所以你可以将cin>>n>>b放到while循环的条件里,cin如果读到eof则返回0。
while(cin>>n>>b)
{
//字符串处理代码
}
也就是说把goto语句的跳转去掉。
当然你要是舍不得的话可以把把cin>>n语句用if(cin>>b) 代替掉,如果cin返回0即读到eof,则跳出循环。
另:不知道你们对c的要求严不严,最好不要出现goto语句。
另另:代码没仔细看,就针对你说的不知道以什么为结束标志提看了下
以上就是关于c语言小程序 分解质因数 为什么一定要加个while(i!=n)想了好久都没想明白, 求高手指点。全部的内容,包括:c语言小程序 分解质因数 为什么一定要加个while(i!=n)想了好久都没想明白, 求高手指点。、C语言小程序不懂!、while(1) 什么意思 while(i--)什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)