数组作实参 指针作形参 排序

数组作实参 指针作形参 排序

时间: 1ms        内存:128M

描述:

输入七个整数,按从小到大的顺序排序,并输出
要求以数组作为实参,以指针作为形参
给定代码如下,提交时不需要加上

#include <stdio.h>

void sort(int *a);

int main()

{

int num[7],i;

for(i=0; i<7; i++)

scanf("%d",&num[i]);

sort(num);

return 0;



}

输入:

七个整数

输出:

升序后的七个数

示例输入:

1 4 3 2 6 5 7

示例输出:

1 2 3 4 5 6 7 

提示:

参考答案(内存最优[1096]):


#include<stdio.h>
void sort(int *a);

int main()
{
    int num[7],i;
    for(i=0; i<7; i++)
        scanf("%d",&num[i]);
    sort(num);
    return 0;

}
void sort(int *a)
{
    int i,t,j;
    for(j=0; j<7; j++)
        for(i=0; i<6; i++)
        {
            if(*(a+i)>*(a+i+1))
            {
                t=*(a+i);
                *(a+i)=*(a+i+1);
                *(a+i+1)=t;
            }
        }
    for(i=0; i<7; i++)
        printf("%d ",*(a+i));
        printf("\n");
}

参考答案(时间最优[0]):


#include<stdio.h>
void sort(int *a);

int main()
{
    int num[7],i;
    for(i=0; i<7; i++)
        scanf("%d",&num[i]);
    sort(num);
    return 0;

}
void sort(int *a)
{
    int i,t,j;
    for(j=0; j<7; j++)
        for(i=0; i<6; i++)
        {
            if(*(a+i)>*(a+i+1))
            {
                t=*(a+i);
                *(a+i)=*(a+i+1);
                *(a+i+1)=t;
            }
        }
    for(i=0; i<7; i++)
        printf("%d ",*(a+i));
        printf("\n");
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注