| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 478 人关注过本帖
标题:初学C--有关函数的几道题
只看楼主 加入收藏
t_omorrow
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-5-30
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
初学C--有关函数的几道题
1.用递归法并通过函数调用方式将整形数组a中的前K个元素逆置
我写的程序是:
int fun(int a[8],int k)
{
 int t,r;
 if(k>1)
 {
  t=a[0];a[0]=a[k-1];a[k-1]=t;
  for(r=0;r<8;r++)
  printf("%d",a[r]);
 }
}

main()
{
 int *a[8],k,i;
 for(i=0;i<8;i++)
 scanf("%d",a[i]);
 printf("puts a number called k");
 scanf("%d",&k);
 printf("&d\n",fun(a[8],k));
}
例如我打了1-8的8个数字,但出来的结果很是怪异。。麻烦请教一下,这到底哪里有问题呢?又该如何解决呢?
2.用递归法通过调用函数的方式将一个整数转换成字符串。
将整数转为字符串,应该是本数加48。例如123就是484950呗?!
那又该如何写呢?麻烦大家帮帮忙啦~~谢谢~~~~
搜索更多相关主题的帖子: number called 
2012-05-30 20:51
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:20 
你的方法不是递归吧
#include <stdio.h>
int a[8] = {1,2,3,4,5,6,7,8};
int left,right;
void Reverse(void)
{
    if(left >= right)
        return;
    char temp = a[left];
    a[left] = a[right];
    a[right] = temp;
    left++;
    right--;
    Reverse();
}

int main(void)
{
    int i=0;
    left=0;
    right=7;
   
    Reverse();
    for(;i<8;i++)
    printf("%d",a[i]);
    return 0;
}


[ 本帖最后由 pauljames 于 2012-6-2 07:30 编辑 ]

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2012-06-02 06:45
t_omorrow
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-5-30
收藏
得分:0 
回复 2楼 pauljames
刚学掌握的还不是很好。。嘿嘿。。我用你的程序在TC中运行了一次,可是显示char temp = a[left];有错误哦。。temp该是个所求新数组吗?还是怎么带进主函数中呢?麻烦你再帮我解答下吧~谢谢~~~
2012-06-05 22:33
快速回复:初学C--有关函数的几道题
数据加载中...
 
   



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

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