完成下面的函数,实现对整数数组的排序功能,并注明使用的排序算法。(5分)
给开头void sort(int *array, int array_num) 冒泡法c语言,各位大佬帮我看看为什么错了,或者有什么正确的代码
#include
void sort(int *array, int array_num)
{
int i,j,temp;
for(i=0;i<array_num-1;i++)
for(j=1;j<array_num-i;j++)
{
if(array[j]<array[j-1])
{
temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;
}
}
}
int main()
{
int array_num,i,j;
int array[array_num];
printf("请输入要排序的数字个数:");
scanf("%d",&array_num);
printf("请输入要排序的数字个数:");
for(i=0;i<array_num;i++)
{
scanf("%d",&array[i]);
}
void sort(int *array, int array_num);
for(j=0;j<array_num;j++)
{
printf("%d",array[j]);
}
return 0;
system("pause");
}
修改如下:
#include<stdio.h>
void sort(int *array, int array_num)
{
int i,j,temp;
for(i=0;i<array_num-1;i++)
for(j=1;j<array_num-i;j++)
{
if(array[j]<array[j-1])
{
temp=array[j-1];
array[j-1]=array[j];
array[j]=temp;
}
}
}
int main()
{
int array_num,i,j;
printf("请输入要排序的数字个数:");
scanf("%d",&array_num);
int array[array_num]; // 数组定义放到下面
printf("请输入要排序的数字:");
for(i=0;i<array_num;i++)
{
scanf("%d",&array[i]);
}
sort(array, array_num); // 排序函数调用修改
for(j=0;j<array_num;j++)
{
printf("%d ",array[j]);
}
return 0;
}
举个例子你就懂了
#include<stdio.h>
void main()
{
int i,a[10],temp,pos;
printf("为数组元素赋值:\n");
for(i=0;i<10;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);
}
for(i=1;i<10;i++)
{
temp=a[i];
pos=i-1;
while((pos>=0) && (temp<a[pos]))
{
a[pos+1]=a[pos];
pos--;
}
a[pos+1]=temp;
}
for(i=0;i<10;i++)
{
printf("%d\t",a[i]);
}
}