| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 475 人关注过本帖
标题:一个while循环的小问题
收藏  订阅  推荐  打印 
青鸟
Rank: 1
等级:新手上路
帖子:39
积分:490
注册:2006-9-20
一个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-9-20 16:32
心动音符
Rank: 4
等级:高级会员
威望:1
帖子:831
积分:8476
注册:2005-9-15

咱怎么输入90后没结果啊 你的算法对不对啊

2006-9-20 17:10
青鸟
Rank: 1
等级:新手上路
帖子:39
积分:490
注册:2006-9-20

俺不蛮记得了`
上午打的`` 所以````印象有所以模糊

who can stop me is me!
2006-9-20 17:14
青鸟
Rank: 1
等级:新手上路
帖子:39
积分:490
注册:2006-9-20

#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-9-20 17:16
nuciewth
Rank: 12Rank: 12Rank: 12
来自:我爱龙龙
等级:版主
威望:93
帖子:9525
积分:95102
注册:2006-5-23

#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-9-20 17:24
青鸟
Rank: 1
等级:新手上路
帖子:39
积分:490
注册:2006-9-20

#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-9-20 17:34
青鸟
Rank: 1
等级:新手上路
帖子:39
积分:490
注册:2006-9-20

#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-9-20 17:36
nuciewth
Rank: 12Rank: 12Rank: 12
来自:我爱龙龙
等级:版主
威望:93
帖子:9525
积分:95102
注册:2006-5-23

作为*的判断,没有特殊的意义.

倚天照海花无数,流水高山心自知。
2006-9-20 17:43
青鸟
Rank: 1
等级:新手上路
帖子:39
积分:490
注册:2006-9-20

#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-9-20 21:13
心动音符
Rank: 4
等级:高级会员
威望:1
帖子:831
积分:8476
注册:2005-9-15

while(num%k==0);
num=num/k;
这两句算法是怎么解释的啊

2006-9-20 21:24
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.058763 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved