A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

/*************************************************************
*函数名称:设计函数,将数字倒叙排列
*函数功能:设计函数,将数字倒叙排列
*所需知识:函数的调用、数组的运用
*************************************************************/
/////////////////////////////////////////////////////////////////////////
#include<stdio.h>
/**********主函数**************/
int main()
{
        int a[]={1,3,4,5,6},i;
        for(i=0;i<sizeof(a)/sizeof(int);i++)    //计算a的字节长度/8就是其长度
        {
                printf("%d",a[i]);
        }

        turn(a[],sizeof(a)/sizeof(int));

        printf("\n");
        return 0;
}

/**********子函数**************/
void turn(int a0[],int length)
{
        int j,b[5];
        for(j=length;length>=0;j--)
        {
               
                b[]=a[j];              //不会了。。。。。

        }
}
从这里开始要怎么排序输出啊,就是倒着输出。比如12345输出就是54321.我知道指针应该行但是没有试过。。。能不用指针做吗?

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

9 个回复

倒序浏览
#include<stdio.h>
void turn(int b[],int n1);

int main()
{
    int a[]={1,3,4,5,6};
   
    int length = sizeof(a)/sizeof(int);
   
    turn(a,length);
   
    return 0;
}

void turn(int b[],int n1)
{
    for(int j = n1 - 1; j >= 0 ;j--)
        printf("%d",b[j]);
        
}

评分

参与人数 1技术分 +1 收起 理由
傘が咲く + 1

查看全部评分

回复 使用道具 举报
永远不会贬值 发表于 2014-5-28 16:57
#include
void turn(int b[],int n1);

谢谢你。。。。。。看懂了!:)
回复 使用道具 举报
★Joean_Zhou 发表于 2014-5-28 18:54
谢谢你。。。。。。看懂了!

不客气哈
回复 使用道具 举报
最简单的方法是冒泡排序  看代码 不懂可以问我

#include<stdio.h>
void turn(int a0[],int length);
/**********主函数**************/
int main()
{
        int a[]={1,3,4,5,6},i;
        turn(a,sizeof(a)/sizeof(int));
        for(i=0;i<sizeof(a)/sizeof(int);i++)    //计算a的字节长度/8就是其长度
        {
                printf("%d",a[i]);
        }



        printf("\n");
        return 0;
}

/**********子函数**************/
void turn(int a[],int length)
{
    int i, j;
    for(i = 0; i < length; i++)
        for(j = i+1; j < length; j++)
        if(a[i]<a[j])
        {
            int temp = a[i];
            a[i] = a[j];
            a[j] = temp;
        }
}
回复 使用道具 举报
夏沫的黄昏′ 发表于 2014-5-28 18:58
最简单的方法是冒泡排序  看代码 不懂可以问我

#include

好像冒泡法可以直接记住模板也可以哈。。。嘿嘿!好像是固定用法对不啊?
回复 使用道具 举报
★Joean_Zhou 发表于 2014-5-28 21:37
好像冒泡法可以直接记住模板也可以哈。。。嘿嘿!好像是固定用法对不啊? ...

也是有一些变化的  正序 倒序 神马的~ 不过 建议你学 下 快排   二分  插入 等排序方法
回复 使用道具 举报
加油楼主
回复 使用道具 举报
倒序输出很简单的,有好多的算法
回复 使用道具 举报
排序问题
正着排
int main(){
int a[]={1,3,4,5,6},i;
for(int j=0;j<4;j++)//排序为4次,遍历数组,j=0是因为数组是从a[0]开始的
for(int i=1;i<j;i++)//从第一位开始,i的初值为1当j为2的时候i才能循环比较一次。
if(a[i]>a[i+1])//将大的元素往后移动
int temp;
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
倒着排
int main(){
int a[]={1,3,4,5,6};
for(int j=0;j<4;j++)//排序为4次,遍历数组,j=0是因为数组是从a[0]开始的
for(int i=5;i<j;i--)//从第最后一位开始
if(a[i]>a[i+1])//将大的元素往后移动
int temp;
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马