您的位置:首页 > 编程语言 > C语言/C++

C语言:从键盘输入十个数字进行排序(冒泡,选择,插入)

2019-03-22 18:06 851 查看

不太理解插入排序,可参考此人博客较为详细:https://blog.csdn.net/qq2071114140/article/details/80428472 

方法一:冒泡排序

[code]#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(){
int i = 0, j = 0, m = 0;
int arr[] = {0};
printf("请输入三个数: ");
for (i = 0; i < 3; i++) {
scanf("%d", &arr[i]);
}
for (i = 0; i < 2; i++) {
for (j = 0; j < 2- i; j++) {
if (arr[j] > arr[j+1]) {
m = arr[j];
arr[j+1] = arr[j];
arr[j] = m;
}
}

}
printf("该数组从大到小的排列顺序为:");
for (i = 0; i < 3; i++) {
printf("%d ", arr[i]);
}
system ("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
int a[10] = {0};
int i = 0, j = 0,  k = 0;
printf("请输入十个数字");
for (i = 0; i < 10; i++) {
scanf("%d", &a[i]);
}
for (i = 0; i < 10 - 1; ++i) {           //比较10-1轮
for (j = 0; j < 10- 1 - i; ++j) {   //每轮比较10-1-i次,
if (a[j] < a[j + 1]) {
k = a[j];
a[j] = a[j + 1];
a[j + 1] = k;
}
}
}
printf("该十个数字从小到大依次排列顺序:");
for (i = 0; i < 10; ++i) {
printf("%d  ", a[i]);
}
printf("\n");
system("pause");
return 0;
}

方法二:选择排序

[code]#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
int a[10] = { 0 };
int  i = 0, j = 0, k = 0;
printf("请输入10个数字: ");
for (i = 0; i < 10; ++i) {
scanf("%d",&a[i]);
}
for (i = 0; i < 10 - 1; ++i)
{
for (j = i + 1; j < 10; ++j)
{
if (a[i] > a[j])
{
k = a[i];
a[i] = a[j];
a[j] = k;
}
}

}
printf("该十个数字从小到大依次排列顺序:");
for (i = 0; i < 10; ++i) {
printf("%d  ", a[i]);
}
printf("\n");
system("pause");
return 0;
}

方法三:插入排序

[code]#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, j, t;
int a[10] = { 0 };
printf("请输入10个整数: ");
for (i = 0; i < 10; ++i) {
scanf("%d", &a[i]);
}
for (i = 1; i < 10; ++i) {
t = a[i];
for (j = i - 1; j > -1 && a[j] > t; j--) {
a[j + 1] = a[j];
}
a[j + 1] = t;
}
for (i = 0; i < 10; ++i) {
printf("%d ", a[i]);
}
system("pause");
return 0;

}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐