C++对10个数选择排序的2个问题分享
2015-12-30 18:30
567 查看
C++对10个数选择排序,升序输出
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/29/06ae280fb80939f0c830b73213eec1b1)
#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出循环;
否则复制当前下标字符到下一个下标位置;
循环。
#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出循环;
否则复制当前下标字符到下一个下标位置;
循环。
相关文章推荐
- C++编程思想学习笔记---第15章 多态性和虚函数
- VC++获取程序运行路径
- UNICODE GBK UTF-8 编码互转(VC++)
- VC++6.0显示cannot compile the file***:no compile tool is associated with the file extension.
- android studio实现Jni(C/C++)单步调试方法步骤-标准配置教程
- 分离链接散列表--C语言实现
- C语言转义字符\t\r\b\n的含义
- windows下如何获取系统已存在的盘符 【c++】
- C语言网站开发测试 WAMP配置CGI
- 提高C++程序运行效率的10个简单方法
- C++ Primer 第15章句柄类clone函数的意义
- C++对象模型
- c语言中的部分字符串和字符函数
- c/c++ 宏定义中的#/##
- C++开源库大全
- 深拷贝和浅拷贝
- 将VC++项目配置为64位平台
- C++ 函数调用操作符 () 、 函数对象
- C语言函数的作用域规则
- C++ 100款开源界面库——内容细节(现在有变动)不必深究,普及就好