| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12521 人关注过本帖, 1 人收藏
标题:如何输出一个三位数的逆序数(这个数可能是负数)?
只看楼主 加入收藏
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
额,这个不是中心思想,忽略了。
abs()就OK了,楼主应该知道的。

你醒了?快起来敲代码!!
2015-04-08 14:42
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
回复 9楼 xzlxzlxzl
你点不点赞 我实在不关心
本想向你学习的
你的10行一个循环解决问题的代码才是我想看的
而不是你那么多的遗憾……

Only the Code Tells the Truth             K.I.S.S
2015-04-08 15:02
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
回复 11楼 code力力
帮我试试吧,如不行按此思路帮我完善下。不会写c代码,也不知道如何调试c,只有vs2008,也不知道如何用!汗~
int i,j,k,n;
scanf("%d",&n);
k=1;
if(n<0)k=-1;
n=n*k;//处理负数
for(i=n,j=0;i>0;i=i/10)j=j*10+i%10;
j=j*k;//复原负数
printf("%d\n",j);
//共8行,关键语句仅一行for,对数据尾数为0的未考虑,麻烦调试下吧
2015-04-08 17:24
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
回复 13楼 xzlxzlxzl
试了一下,没问题。

你醒了?快起来敲代码!!
2015-04-08 18:08
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
回复 14楼 code力力
谢了!还好没有丢vb版主的脸。
我崇拜算法,迷信数学可以描述一切(可惜数学不是特好)。一看到简单问题复杂解决的就忍不住喷两句,希望没有冒犯各位坛友!
2015-04-08 19:01
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
回复 15楼 xzlxzlxzl
请看我在回复楼主时是怎么说的
fabs()函数原型:
double fabs(double x);

即接受double类型的参数 返回值也是double类型
你代码中x = fabs(x) 其中x为int类型
可改用 abs()函数 abs()函数使用时 应 #include <stdlib.h>

你的代码还是有点问题 就算改了abs函数 也不能得到正确结果

这种题目从字符串的角度来处理
或许更方便些

这里是我以前写的一段代码
你有意可参看


我解释了fabs  abs 的一点明显区别
又提示了或许可以换个角度从处理字符串的方式上来解决这个问题
最后给出了示例代码

特别点明了 “有意可参看”
有人可能不喜欢这种代码的也在我的意料之中

由于我的多虑吧
我给出的代码中考虑到了尾0的处理
由于是按字符串处理
所以不会受INT_MAX之类的极限值限制
还可以处理浮点数的
这些在有的人看来
肯定是自找麻烦的多余代码

站在不同角度上看问题
每人的意见也都是有道理
我是这样考虑的
给出自己的代码总是要授受别人的评价的
感谢评价的人给出的建议

对于VB版主的10行一循环解决问题
至少解决了楼主的题目
我还是要点赞收藏学习的

就说这么多了

Only the Code Tells the Truth             K.I.S.S
2015-04-08 19:30
xueyujianke
Rank: 2
等 级:论坛游民
帖 子:8
专家分:41
注 册:2015-4-6
收藏
得分:2 
/* Note:Your choice is C IDE */
# include<stdio.h>
# include<math.h>
void test(int x);
int main (void)
{int x;
 printf("整数为:");
 scanf("%d",&x);   
    x=fabs(x);
    test(x);
    return 0;
}

void test(int x)
{
  printf("%d",x%10);
  if(x/10)
  test(x/10);
}

本人初学者,请大家多多指教
2015-04-08 21:13
pycansi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:5
帖 子:418
专家分:1060
注 册:2012-7-26
收藏
得分:2 
回复 13楼 xzlxzlxzl
这个算法漂亮,精干


莫问前尘有愧,但求今生无悔
2015-04-08 23:05
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
其实,这个小程序就不用搞那么复杂了。算法复杂 或者简单 都不是太重要(对于这个题来说)

重要的我觉得是思路,C语言的魅力就在于它给程序员的自由度很高。

可以说一个程序10个人有10个写法,最好的只有1个,但不一定就在这10个人之中,也许再来一个人可以写的更好。

更好难道就是代码量少,看起来简单吗?我想不是,我看了一些老外的书,他们传递给哦的理念也不是代码越少越好。

对于新人问的问题,我想回答的时候注重思路更重要。

你醒了?快起来敲代码!!
2015-04-08 23:33
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:0 
我现在还没学算法和数据结构,话语天真,望谅解。

你醒了?快起来敲代码!!
2015-04-08 23:36
快速回复:如何输出一个三位数的逆序数(这个数可能是负数)?
数据加载中...
 
   



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

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