修改程序:将一个任意整数插入到已排列的整型数组中,插入后,数组中的数仍保持有序,哪里错了,求修改

#include<stdio.h>
main()
{
int a[10]={1,7,14,20,45,68,88,90,99},*p=a,*m=a,n;
for(p=a;p<a+9;p++)
printf("%3d",*p);
printf("\n");
printf("input the number you want to insert:");
scanf("%d",&n);
for(p=a;*p<n&&p<a+9;p++);
for(m=a+8;m>=p;m--)
*++m=*m;
*p=n;
for(p=a;p<a+10;p++)
printf("%d",*p);
printf("\n");
}

#include<stdio.h>
main()
{
int a[10]={1,7,14,20,45,68,88,90,99},*p=a,*m=a,n;
for(p=a;p<a+9;p++)
printf("%3d",*p);
printf("\n");
printf("input the number you want to insert:");
scanf("%d",&n);
for(p=a;*p<n&&p<a+9;p++);
for(m=a+9;m>=p;m--)
*m=*(m-1); //你开始的一直在这里循环啊,这样改
*p=n;
for(p=a;p<a+10;p++)
printf("%d ",*p);
printf("\n");
}
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言实验六实验报告——指针
 2.编程实现:将一个任意整数插入到一个已排序的整数数组中,插入后数组中的数仍然保持有序。要求:(1)整数数组由初始化方式输入。任意整数由scanf函数输入;(2)实现过程采用指针处理;(3)输出原始数组数据以及插入数据后的数组数据并加以相应说明。3.编写函数newcopy(char*new,char*old...

...存放的整型数组中插入一个数,使得插入后的数组元素仍然有序_百度...
\/\/等待输入插入数值 scanf("%d",&x); \/\/找到数值要插入的坐标位置 (从0开始,下标递增查找,满足数组的值<插入的数值,继续查找,找到第一个比插入数值大的数) for(i=0;a[i]<x&&i<N;i++) ;\/\/从第K各开始到第N个数值,倒序赋值,其实就是向后移动一位. for(k=N;k>i;k--) a[k]=a[k-1];...

C程序编写,将一个数插入到一个已经有序的数组里,要求保持有序
define _CRT_SECURE_NO_WARNINGS include<stdio.h> int main(){ int i, j, t, k;\/\/定义循环变量 const int n = 10;\/\/定义数组元素个数 int a[n], b[n + 1];\/\/定义两个数组 printf("您喜欢的有序数组:\\n");\/\/输入数组序列文字提 for (i = 0; i < n; i++){ scanf("%...

C语言中,怎样把一个整数按大小顺序插入已经排好序的整形数组中?
\/*整体思路是先将输入的十个数从小到大排列好,然后再将单独输入的数与数组比较大小并将其插入数组中,这部分是关键。需要注意的是我们在刚开始时将数组长度定义为11,就是为后面插入一个数预留的空位*\/#include <stdio.h>void main(){ int a[11]; \/*数组长度为11*\/ int n=10,i,j,k,t; int x,count...

什么是插入法?
插入法的核心思想是将某个元素插入到已经排序的数组中,从而得到一个新的有序数组。这种算法在数据量大且部分数据已经排序的场景下非常有效。以下是关于插入法的 1. 基本概念 插入法是一种简单的排序算法,适用于数据量相对较小的情况。它的基本思想是将一个数据元素逐一与已排序序列中的元素进行比较,...

已有一个排好序的序列,输入一个数插入到该序列中,使其仍然保持有序.
假设原序列名为a,要插入的数为b.如果数字是从小到大排列的.for(int i=n,;i>=0;i--)\/\/n为数组a的元素个数 { if(a[i]>=b){ a[i+1]=a[i];a[i]=b;} else continue;}

...排列的数组,从键盘输入一个数,将它插入到数组中的合适位置,使数组依 ...
8. i=9;9. a[i] > x 10. a[i+1] = x 对于8,开始要找到数组的末尾,才能从后往前找。对于9,我们要找到输入的x比数组中的数大的位置,因此如果当前数组元素大于x,就要往前找。对于10,根据注释填入程序即可。结果如下:

在一个长度为n的有序表中插入一个新元素x,要求插入后仍保持线性表的有...
先用一个变量,保存要插入的值,从数组的最后一个元素开始,假设数组原先是升序的。把所有大于x的元素都后移一位,最后把x插入到最后后移元素的原来位置,并把数组的有效元素个数加一,这样就完成了插入的操作。

编写函数实现在按降序排列的成绩数组中,插入一个新的学生成绩后,该成绩...
importjava.util.Scanner;@authorAdministrator;向有序数组中插入学员成绩;在一组降序排列的数据中插入一个数据,插入后,数组中数据依然按降序排列 publicclassInsertNum{ publicstaticvoidmain(String[]args){ //要确保插入数据有位置,必须数组长度多一位,所以定义数组的时候,要这样定义 int...

输入一个元素数为n的升序数组,在插入整数x,y,后该数组仍有序。
插入x的循环后加入了插入失败的情况,也就是把x放到新数组(长度n+1)末尾;然后尝试把y插入这个新数组中,循环次数比上一个多了一次(i<n+1),如果y比新数组所有元素都大,把y放到新新数组(长度n+2)。实现代码:include <iostream> using namespace std;int main(){ int n, i, j;int a[20...

相似回答