| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 334 人关注过本帖
标题:大家能解释这个程序么?
只看楼主 加入收藏
半尾鱼
Rank: 1
来 自:浙江杭州
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-11-5
收藏
 问题点数:0 回复次数:9 
大家能解释这个程序么?
#include <stdio.h>
int main()
{
int n,i;
while(scanf("%d",&n)!=EOF)
{
printf("%d=",n);
for(i=2;i<=n;i++)
{
while(n!=i)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else break;
}
}
printf("%d\n",n);
}
return 0;
}
搜索更多相关主题的帖子: include 
2013-01-06 11:27
不玩虚的
Rank: 9Rank: 9Rank: 9
来 自:四川
等 级:贵宾
威 望:10
帖 子:331
专家分:1301
注 册:2012-12-9
收藏
得分:0 
scanf("%d",&n)!=EOF这句是想做什么啊,EOF是文件结束符,你又没用用到文件,不用判断他吧 。

同学习......同进步....你帮我......我帮你.....上善若水.....
2013-01-06 11:52
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:0 
以下是引用不玩虚的在2013-1-6 11:52:53的发言:

scanf("%d",&n)!=EOF这句是想做什么啊,EOF是文件结束符,你又没用用到文件,不用判断他吧 。

当出现异常时,scanf是可能返回EOF的
2013-01-06 12:08
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
问题是如果接收没有出现异常怎么办,循环怎么结束呢...

I have not failed completely
2013-01-06 12:09
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:0 
(建议站长去掉 CTRL+ENTER作为发帖的快捷键,首先这个快捷方式没有任何必要,其次它还会误用)

但这种用法本身是不对的,因为在异常之外,还存在只读取成功部分fields的情况,所以正确用法是
while(scanf("%d",&n)!=EOF)
改为
while(scanf("%d",&n)==1)
(有多少需要读取的fields就应该返回几)

而 scanf(……)!=EOF 这用错误流传甚广的原因是MSDN的一道example,哎,这几年来,M$中的烂货越来越多
2013-01-06 12:14
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用rjsp在2013-1-6 12:14:05的发言:

(建议站长去掉 CTRL+ENTER作为发帖的快捷键,首先这个快捷方式没有任何必要,其次它还会误用)

但这种用法本身是不对的,因为在异常之外,还存在只读取成功部分fields的情况,所以正确用法是
while(scanf("%d",&n)!=EOF)
改为
while(scanf("%d",&n)==1)
(有多少需要读取的fields就应该返回几)

而 scanf(……)!=EOF 这用错误流传甚广的原因是MSDN的一道example,哎,这几年来,M$中的烂货越来越多

我觉得这个快捷键不错啊 有啥不好的呢

用浏览器脚本可以去掉这个快捷键罢
2013-01-06 12:16
笑霸
Rank: 2
等 级:论坛游民
帖 子:5
专家分:15
注 册:2013-1-6
收藏
得分:0 
我觉得n应该定义为大于2的啊
2013-01-06 12:39
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:0 
以下是引用zklhp在2013-1-6 12:16:27的发言:


我觉得这个快捷键不错啊 有啥不好的呢

用浏览器脚本可以去掉这个快捷键罢

有的地方用 enter 换行,有的地方用 ctrl-enter,一不小心就弄错。弄错无所谓,但如果弄错了会出现不能令人接受的后果(比如直接发帖了),那就不好了。

用浏览器脚本太麻烦了,不值得
2013-01-06 13:16
半尾鱼
Rank: 1
来 自:浙江杭州
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-11-5
收藏
得分:0 
回复 2楼 不玩虚的
...只是多组测试啊,可以输入多个数据
2013-01-06 13:47
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
回复 5楼 rjsp
while(scanf("%d", &a) != EOF)还勉强看的懂

昨天这个while(~scanf("%d", &a))差点吓尿。


[fly]存在即是合理[/fly]
2013-01-06 13:58
快速回复:大家能解释这个程序么?
数据加载中...
 
   



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

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