编写函数sort,实现对整数数组排序的功能。
主函数中,定义数组并使用初始化方法给出数组初值。测试数据为{16,5,8,12,1,17,3,6,10,2}。
主函数中调用sort函数实现对测试数据排序的功能。要求分别打印出排序前后数组元素的值。
C语言数组排序问题
答案:2 悬赏:0 手机版
解决时间 2021-04-14 18:00
- 提问者网友:ミ烙印ゝ
- 2021-04-14 00:00
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-04-14 01:27
#include <stdio.h>
void sort( int* a, int n )
{
int i, j, k;
for ( i = 0; i < n; ++i ) {
k = a[i];
j = i - 1;
while( j >= 0 && a[j] > k ) {
a[j+1] = a[j];
--j;
}
a[j+1] = k;
}
}
void print( int* a, int n )
{
int i;
for ( i = 0; i < 10; ++i )
printf( "%d ", a[i] );
putchar( '\n' );
}
int main()
{
int a[10] = { 16,5,8,12,1,17,3,6,10,2 };
print( a, 10 );
sort( a, 10 );
print( a, 10 );
}
运行截图:
void sort( int* a, int n )
{
int i, j, k;
for ( i = 0; i < n; ++i ) {
k = a[i];
j = i - 1;
while( j >= 0 && a[j] > k ) {
a[j+1] = a[j];
--j;
}
a[j+1] = k;
}
}
void print( int* a, int n )
{
int i;
for ( i = 0; i < 10; ++i )
printf( "%d ", a[i] );
putchar( '\n' );
}
int main()
{
int a[10] = { 16,5,8,12,1,17,3,6,10,2 };
print( a, 10 );
sort( a, 10 );
print( a, 10 );
}
运行截图:
全部回答
- 1楼网友:末日狂欢
- 2021-04-14 02:43
#include <stdio.h> #include <windows.h>
void sort(int a[],int n,int flag) { int i,j,tmp; for(j=0;j<n-1;j++) for(i=0;i<n-1-j;i++) { if(flag==0) { if(a[i]>a[i+1]) { tmp=a[i]; a[i]=a[i+1]; a[i+1]=tmp; } } else { if(a[i]<a[i+1]) { tmp=a[i]; a[i]=a[i+1]; a[i+1]=tmp; } } } for(i=0;i<n;i++) printf("%d ",a[i]);
} void main() { int f, a[10]= { 16,5,8,12,1,17,3,6,10,2 }; printf("正序还是倒序?选择0或者1:"); scanf("%d",&f); sort(a,10,f); system("pause"); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯