用选择法对十个整数排序
编译环境VS2017
核心代码:
int tepm;
for (int i = 0; i < 10; ++i) {
for (int j = i + 1; j < 10; ++j) {//a[i]依次和a[i]之后的元素作比较
if (a[i] > a[j]) {//碰见比a[i]小的则与之交换
tepm = a[i];
a[i] = a[j];
a[j] = tepm;
}
}
}
具体实现如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void sort(int a[]) {
int tepm;
for (int i = 0; i < 10; ++i) {
for (int j = i + 1; j < 10; ++j) {//a[i]依次和a[i]之后的元素作比较
if (a[i] > a[j]) {//碰见比a[i]小的则与之交换
tepm = a[i];
a[i] = a[j];
a[j] = tepm;
}
}
}
for (int i = 0; i < 10; ++i) {
printf("%d ", a[i]);
}
printf("\n");
}
void main() {
int arr[10];
for (int i = 0; i < 10; ++i) {
printf("请输入数组arr的第%d个数\n", i + 1);
scanf("%d", &arr[i]);
system("cls");
}
printf("数组arr为:\n");
for (int i = 0; i < 10; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
sort(arr);
system("pause");
}
不考虑代码的重用性.也可以写在main函数中
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void main() {
int arr[10];
int i;
for (i = 0; i < 10; ++i) {
printf("请输入数组arr的第%d个数\n", i + 1);
scanf("%d", &arr[i]);
system("cls");
}
printf("原数组arr为:\n");
for (i = 0; i < 10; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
int tepm;//临时变量,用于交换
int j;
for (i = 0; i < 10; ++i) {
for (j = i + 1; j < 10; ++j) {//a[i]依次和a[i]之后的元素作比较
if (arr[i] > arr[j]) {//碰见比a[i]小的则与之交换
tepm = arr[i];
arr[i] = arr[j];
arr[j] = tepm;
}
}
}
for (i = 0; i < 10; ++i) {
printf("%d ", arr[i]);
}
printf("\n");
system("pause");
}