写一个函数,用“冒泡法”对整型数组中的数据进行升序排列。并写出主函数,定义如下整型数组:int d

2024-12-27 04:06:05
推荐回答(2个)
回答1:

#include
int data_1[10]={9,8,7,6,5,4,3,2,1,0},data_2[10]={9,8,7,6,5,4,3,2,1,0};/*全局数组,这里的全局数组只是为了便于初始化的修改,其实在主函数内定义照样可以通*/
void main()
{
void arrange(int* a,int n);  // 自定义函数声明
int i;
printf("Before arrangemnet:\n");// 输出排序前两个数组

printf("data_1[10]:\n");
for(i=0;i<10;i++)
printf("%d ",data_1[i]);

printf("\ndata_2[10]:\n");
for(i=0;i<10;i++)
printf("%d ",data_2[i]);

printf("\n");

arrange(data_1,10);arrange(data_2,8);// 调用自定义函数分别排序前10个和前8个元素

printf("After arrangemnet:\n");// 输出排序后两个数组

printf("data_1[10]:\n");
for(i=0;i<10;i++)
printf("%d ",data_1[i]);

printf("\ndata_2[10]:\n");
for(i=0;i<10;i++)
printf("%d ",data_2[i]);

printf("\n");
}
void arrange(int* a,int n) /*自定义函数部分,指针a接受传输来的数组首地址,n接受
                              交换的个数*/
{ int i,t,*j=NULL;
 for(i=n-1;i>0;i--)     //这里就是冒泡排序!!!只不过和指针结合在一起!
 for(j=a;j if(*(j+1)<*j) {t=*(j+1);*(j+1)=*j;*j=t;}
}

回答2: