#include <stdio.h>
#include <stdlib.h>
#define NUM 10
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int arr[NUM],i,j,temp;
printf("请输入10个数:\n");
for(i=0; i<NUM; i++) {
printf("请输入第(%d)个数:",i+1);
scanf("%d",&arr[i]);
}
printf("输入如下排列:\n");
for(i=0; i<NUM; i++) {
printf("%4d",arr[i]);
}
for(i=0; i<NUM; i++) {
for(j=i+1; j<NUM; j++) {
if(arr[i]>arr[j]) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
printf("\n从小到大如下排列:\n");
for(i=0; i<NUM; i++) {
printf("%4d",arr[i]);
}
return 0;
}
冒泡法排序望采纳谢谢
追问#include
int main()
{int a[10]={23,4,12,34,55,76,89,90,76,72};
int i,j,k,t,n=10;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k])k=j;
t=a[k];a[k]=a[i];a[i]=t;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
这是实现选择法对10个整数按升序排列的函数
怎样改成“用实现选择法对n个整数的按升序排列的函数”呀,大神
追答#include<stdio.h>
#define NUM 10
void SelectSort(int *a, int n) {//选择法排序
int i,j;
for ( i= 0; i < n; i++) {
int key = i; // 临时变量用于存放数组最小值的位置
for ( j = i + 1; j < n; j++) {
if (a[j] < a[key]) {
key = j; // 记录数组最小值位置
}
}
if (key != i) {
int tmp = a[key];
a[key] = a[i];
a[i] = tmp; // 交换最小值
}
}
}
int main() {
int arr[NUM],i,j,temp;
printf("请输入10个数:\n");
for(i=0; i<NUM; i++) {
printf("请输入第(%d)个数:",i+1);
scanf("%d",&arr[i]);
}
printf("输入如下排列:\n");
for(i=0; i<NUM; i++) {
printf("%4d",arr[i]);
}
SelectSort(arr, NUM);
printf("排序好的数组为: ");
for(i=0; i<NUM; i++) {
printf("%4d",arr[i]);
}
return 0;
}