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

C++对10个数选择排序的2个问题分享

2015-12-30 18:30 567 查看
C++对10个数选择排序,升序输出



#include<stdio.h>

int main() {
int a[10], i, j, k, t;

//输入
for(i = 0; i < 10 ; i++)
scanf("%d", &a[i]);

//选择法排序
for(i = 0; i < 10 - 1; i++) {
k = i;
for(j = i + 1; j < 10; j++)
if (a[k] > a[j])
k = j;
if(k != i) {
t = a[i];
a[i] = a[k];
a[k] = t;
}
}

//输出
for(i = 0; i < 10; i++)
printf("%d\n", a[i]);
}

问题:有一个排好序的字符数组;今输入一个字符,要求按原来排序的规律将它插入数组中?

答案:首先字符数组要有至少多一个空间,如果没有,新建字符数组;

原字符数组长度+1的位置赋值为'\0';

循环i,从原字符数组最后一个字符的下标开始向头部递减;

比对字符,如果新字符大于下标字符,直接把新字符放在下一个下标位置,break出循环;

否则复制当前下标字符到下一个下标位置;

循环。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息