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

来源:互联网 发布:彼生而有涯而知也无涯 编辑:程序博客网 时间:2024/06/05 14:09
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出循环;
否则复制当前下标字符到下一个下标位置;
循环。
0 0