输入10个整数,编写函数sort, 按绝对值从小到大排序, 并返回绝对值最大整数在原数组中的下标。按要求编写sort()。
#include#include void sort(int a[], int n, int *p2) { int i = 0,j = 0; *p2 = 0; int *p = a; //找出元素中绝对值最大的下标 for (i = 0; i < 10 - 1; i++) { if (abs((*p + i)) < abs( *(p + i + 1)))//abs为取绝对值函数,头文件为 *p2 = i + 1; }//for //按绝对值大小进行升序冒泡排序 for (i = 0; i < 10 - 1; i++)//进行冒泡排序的次数 {//进行冒泡排序的趟数 for (j = 0; j < 10 - 1; j++) { if (abs( *(p + j)) > abs( *(p + j + 1))) { int t; t = *(p + j); *(p + j) = *(p + j + 1); *(p + j + 1) = t; }//if }//for }//for }//sort int main() { int a[10], i; int imax = 0; // printf("请输10个整数:n"); for (i = 0; i < 10; i++) scanf("%d", &a[i]); sort(a, 10, &imax);//冒泡排序 // printf("按绝对值从小到大排序后:n"); printf("imax=%dn", imax); // 输出绝对值最大数在原数组中下标 for (i = 0; i < 10; i++) printf("%5d", a[i]); return 0; }
注:abs为取绝对值函数,头文件为
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)