输入10个数,按绝对值从小到大排序后输出,要求定义一个函数sort,完成绝对值从小到大排序。(题目来源:C语言程序设计第三版)
#include<stdio.h>
#include<math.h>
int sort(int *a)
{
int i,j,t;
for(i=0;i<10;i++)
*(a+i)=fabs(*(a+i));
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
{
if(*(a+j)>*(a+j+1))
{
t=*(a+j);
*(a+j)=*(a+j+1);
*(a+j+1)=t;
}
}
}
int main()
{
int a[10],*p,i;
p=a;
printf("请输入一维数组的值:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
sort(p);
for(i=0;i<10;i++)
printf("%3d~",a[i]);
return 0;
}
关于题设,是要求输出原数组还是输出被绝对化之后的数组,表示对题设没有审视清楚。