马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
C语言训练(15)
<hr> 媒介
- 本次紧张训练了对数组的排序和插入,并思量到插入雷同的数字和凌驾该数组范围时怎样处置惩罚
标题
- 给一个2,4,6,10,15,20,45,78,80,31数组,当插入一个整数时,构成一个新的数组,并将数组按照从小到大肆行排序
标题分析
- 本次的步调是,先对原来的数组2,4,6,10,15,20,45,78,80,31举行排序,然后插入数组,插入数组时思量到插入数字大概雷同比如80,就和原来数组元素一样,当插入数字200和-200时间怎样处置惩罚
- 排序头脑使用的冒泡法排序见【C语言训练(14)—冒泡法举行数字巨细排序】,https://blog.csdn.net/weixin_56089319/article/details/144608658?spm=1001.2014.3001.5501
{
int arr[] = {2,4,6,10,15,20,45,78,80,31};
int length = 0;
int t = 0;
int num = 0;
length = sizeof(arr) / sizeof(arr[0]);//盘算数组元素个数
for (int i = 0; i < length - 1 ; i++)//盘算比力的次数,10个数只需比力9次
{
for (int j = 0; j < length - 1 - i; j++)//当第一轮比力完成后,最大的一个数已经排序好
{
if (arr[j] > arr[j + 1])
{
t = arr[j];//来储存这个必要互换的数
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
}
if (num > arr[length - 1])//大于数组最大值得环境
{
arr2[10] = num;
for (int i = 0; i <length; i++)
{
arr2 = arr;
;
}
for (int i = 0; i <= length; i++)
{
printf("%d “, arr2);
}
}
else if (num < arr[0])//大于数组最小值得环境
{
arr2[0] = num;
for (int i = 0; i < length; i++)
{
arr2[i+1] = arr;
}
for (int i = 0; i <= length; i++)
{
printf(”%d ", arr2);
}
}
- else {
-
-
- for (int i = 0; i < length; i++)
- {
-
-
- if (arr[i] <= num && arr[i + 1] >= num)//找到要插入数在数组中的位置
- {
-
-
- x = i + 1;//将该数在数组中的位置记录下来
- break;
- }
- }
- for (int i = length - 1; i >= x; i--)//从后往前将大于插入的数找出来
- {
-
-
- arr2[i + 1] = arr[i];
- }
- for (int i = 0; i < x; i++)//从前往后将前一部分数组找出来
- {
-
-
- arr2[i
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |