| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 329 人关注过本帖
标题:新手求大家帮忙,递归函数。
只看楼主 加入收藏
魅影穿眸
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-11-17
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:3 
新手求大家帮忙,递归函数。
写一递归函数digit(n,k),其中n,k为整数,k是n从右边开始数的第k位,函数的返回值为整数n的第k位上的数,当k<=0, 函数值为-1,在主函数main中实现n,k的输入和输出digit的返回值。希望补全。
不知到这个函数是不是这样编的
digit(int n,int k)
{int i;
  if (k<0)return (-1)
  if (i%=10)
       in/10
  i=digit(n,k+1)
2012-12-28 22:15
聊斋唐少
Rank: 2
等 级:论坛游民
帖 子:17
专家分:11
注 册:2012-12-26
收藏
得分:3 
#include<stdio.h>
#include<math.h>
int digit(int n,int k)
{
    int i,a,s;
    s=pow(10,k-1);
    if(s>n||k<=0) a=-1;
    else
    {
        n=n*10;
        for(i=0;i<k;i++)
        {
            n=n/10;
            a=n%10;
        }
    }
    return a;
}
int main()
{
    int n,k,m;
    scanf("%d%d",&n,&k);
    m=digit(n,k);
    printf("%d",m);
}
无需递归就能搞定了!!
2012-12-28 22:50
Qiwan
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:48
专家分:28
注 册:2011-5-15
收藏
得分:3 
这个题目要求递归就要用递归,不用递归如此简单的题目谁不会,估计你是考研的,我给你一个吧,虽然有点笨但也是递归
#include<stdio.h>
#include<math.h>
int digit(int n,int k)
{int a;
 if(k<=0)a=-1;
 if(k==1)a=n%10;
 else a=((n/(int)pow(10,k-2)-digit(n,k-1))/10)%10;
 return a;
}
void main()
{int n, k;
 printf("输入n和k:\n");
 scanf("%d,%d",&n,&k);
 printf("digit=%d\n",digit(n,k));
}
2012-12-28 23:40
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:3 
想复杂了吧。。。
程序代码:
#include <stdio.h>
int digit(int n, int k)
{
    if (k <= 0)    return -1;
    if (1 == k)    return n % 10;
    return digit(n / 10, k - 1);
}
int main()
{
    int n = 153456;
    int k = 3;
    printf("%d\n", digit(n, k));
    return 0;
}


[fly]存在即是合理[/fly]
2012-12-29 00:40
快速回复:新手求大家帮忙,递归函数。
数据加载中...
 
   



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

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