| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2013 人关注过本帖
标题:递归实现数字的逆序 1234 -> 4321 ?????
只看楼主 加入收藏
永远是起点
Rank: 1
等 级:新手上路
帖 子:26
专家分:3
注 册:2013-2-11
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:17 
递归实现数字的逆序 1234 -> 4321 ?????
递归实现数字的逆序  1234 -> 4321
搜索更多相关主题的帖子: 数字 1234 
2013-05-11 13:51
永远是起点
Rank: 1
等 级:新手上路
帖 子:26
专家分:3
注 册:2013-2-11
收藏
得分:0 
用函数  int reverse(int value)  将value逆序!
2013-05-11 13:53
我爱敲代码
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:70
专家分:165
注 册:2013-4-23
收藏
得分:0 
LZ是这样的吗?
#include"stdio.h"
#include"stdlib.h"
int reverse(int value)
{int ge,shi,bai,qian,n;
   if(value>=1000&&value<=9999)
   {    ge=value%10;
        shi=value%100/10;
        bai=value/100%10;
        qian=value/1000;
        n=ge*1000+shi*100+bai*10+qian;
        return n;
   }
}
void main()
{
    int i,n;
    do
    {
        printf("请输入一个四位整数:");
        scanf("%d",&i);
    }while(i<1000||i>=10000);
    n=reverse(i);
    printf("逆序后:%d\n",n);
}
2013-05-11 14:40
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:0 
这是我用字符数组实现的,:
#include"stdio.h"
#include "string.h"
int reverse(char *p)
{
   int i=strlen(p);
   for(i=strlen(p)-1;i>=0;i--)
       printf("%c",*(p+i));
   return 0;
      
}
void main()
{
    char a[10];
    printf("Input string:");
    scanf("%s",a);
    printf("逆序后:%s\n",a);
    reverse(a);
}
你只要改变数组的大小,即可实现任意位数的逆序

Maybe
2013-05-11 15:38
kalvinyu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:61
专家分:188
注 册:2012-10-31
收藏
得分:0 
三楼如果是123456、123456789呢?那又要怎么办呢
2013-05-11 15:40
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:0 
程序代码:
int reverse(int value)
{
    int i, j;
    if (value > 9) {
        i = value % 10;
        j = value / 10;
        while (value /= 10) i *= 10;
        return i + reverse(j);
    }
    
    return value;
}

楼主 看看这个好不好

人生是一场错过 愿你别蹉跎
2013-05-11 16:00
笑傲
Rank: 8Rank: 8
来 自:迪拜
等 级:蝙蝠侠
威 望:5
帖 子:223
专家分:856
注 册:2013-3-9
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<stdlib.h>

int reverse(int value)
{
    static result = 0;
    if(value == 0)  return 0;
    result = result * 10 + value%10;
    reverse(value/10);
    return result;
}
int main()
{
    int value;
    printf("输入值:\n");
    scanf("%d" , &value);
    printf("反转后的数:\n");
    printf("%d" , reverse(value));
    return 0;
}

应该和你的意!

[ 本帖最后由 笑傲 于 2013-5-11 16:14 编辑 ]

练就一身本领,只为笑傲江湖!
2013-05-11 16:11
fanpengpeng
Rank: 8Rank: 8
来 自:南极洲
等 级:蝙蝠侠
威 望:7
帖 子:299
专家分:849
注 册:2013-2-1
收藏
得分:0 
其实 不需要递归的 一个循环就够了
程序代码:
int reverse(int value)
{
    int i = 0;
    do {
        i *= 10;
        i += value % 10;
    }while(value /= 10);
    
    return i;
}

人生是一场错过 愿你别蹉跎
2013-05-11 16:21
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
程序代码:
#include <stdio.h>
void Digui(int n) {
    if(n == 0) return ;
    printf("%d", n % 10);
    Digui(n /= 10);
}
int main() {
    int n;
    while(scanf("%d", &n) != EOF) {
        Digui(n);
        puts("");
    }
    return 0;
} 

原来2楼有补充.....!


[ 本帖最后由 Susake 于 2013-5-11 19:01 编辑 ]

仰望星空...........不忘初心!
2013-05-11 16:23
我爱敲代码
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:70
专家分:165
注 册:2013-4-23
收藏
得分:0 
回复 5楼 kalvinyu
看七楼,七楼正解
2013-05-11 18:39
快速回复:递归实现数字的逆序 1234 -> 4321 ?????
数据加载中...
 
   



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

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