| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1061 人关注过本帖
标题:一个while循环的小问题
只看楼主 加入收藏
青鸟
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-9-20
收藏
 问题点数:0 回复次数:14 
一个while循环的小问题
初学这个,碰到这样一个题 :
要求输入一个数,并将它分解质因数,如90=2*3*3*5;
试着这样编
#include <stdio,h>
void main()
{
int num,k=2; //质因数从2开始.
printf("请输入一个数字:");
scanf("%d",&num);
while(num!=k)
{
while(num%k!=0)
{ num/=k;
printf("该数分解后为:%d",num);
k++;
}
}printf("输入无效信息.");
}

如果我输入90,输出的结果却是2335 就没没乘号 怎么解决啊`

求教啊!!!!!!!!!!!!!!!!等啊````

搜索更多相关主题的帖子: num 质因数 printf 数字 
2006-09-20 16:32
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
得分:0 
咱怎么输入90后没结果啊 你的算法对不对啊

2006-09-20 17:10
青鸟
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-9-20
收藏
得分:0 
俺不蛮记得了`
上午打的`` 所以````印象有所以模糊

who can stop me is me!
2006-09-20 17:14
青鸟
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-9-20
收藏
得分:0 
#include <stdio,h>
void main()
{
int num,k=2; //质因数从2开始.
printf("请输入一个数字:");
scanf("%d",&num);
while(num>=k) //应该是这里问题吧, 你再试试
{
while(num%k!=0)
{ num/=k;
printf("该数分解后为:%d",);
k++;
}
}printf("输入无效信息.");
}

who can stop me is me!
2006-09-20 17:16
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

#include <stdio.h>
void main()
{
int num,k=2,flag=0;
printf("请输入一个数字:");
scanf("%d",&num);
printf("该数分解后为:");
while(num!=1)
{
while(num%k==0)
{
num=num/k;
if(flag==1)
{
printf("*");
}
else
{
flag=1;
}
printf("%d",k);
}

k++;
}


getch();
}


倚天照海花无数,流水高山心自知。
2006-09-20 17:24
青鸟
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-9-20
收藏
得分:0 

#include <stdio.h>
void main()
{
int num,k=2,flag=0;
printf("请输入一个数字:");
scanf("%d",&num);
printf("该数分解后为:");
while(num!=1)
{
while(num%k==0)
{
num=num/k;
if(flag==1)
{
printf("*");
}
else
{
flag=1;// 这里看不明白啊, flag是什么啊`
}
printf("%d",k);
}

k++;
}


getch();
}


who can stop me is me!
2006-09-20 17:34
青鸟
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-9-20
收藏
得分:0 

#include <stdio.h>
void main()
{
int num,k=2; /* 质因数从2开始. */

scanf("%d",&num);
while(num>=k)
{

if(num%k==0)
{
num/=k;
printf("%d\n",k);
k=1;
}
k++;
}
printf("end");
getch();
}
另一位高手告诉我这样做, 但是红色部分不是蛮明白
有谁可以指点我一下咯?


who can stop me is me!
2006-09-20 17:36
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
作为*的判断,没有特殊的意义.

倚天照海花无数,流水高山心自知。
2006-09-20 17:43
青鸟
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2006-9-20
收藏
得分:0 
#include <stdio.h>
void main()
{
int k=2,num;
printf("请输入一个数:\n");
scanf("%d",&num);
while(k!=num)
{
while(num%k!=0)
{

k++;
}


num/=k;
printf("%d",k);
printf("*");

}printf("%d=%d\n",num,k);
}
如果输入90
为什么输出的是2*3*3*5*啊````` 怎么才能变成90=2*3*3*5

who can stop me is me!
2006-09-20 21:13
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
得分:0 
while(num%k==0);
num=num/k;
这两句算法是怎么解释的啊

2006-09-20 21:24
快速回复:一个while循环的小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012733 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved