数组作实参 指针作形参 排序
时间: 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");
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。