在c语言中,如何在数组中插入一个数

作者&投稿:毓阁 (若有异议请与网页底部的电邮联系)
在c语言中,将一个数插入一个数组中,程序怎么写?~

有一个已排好序(从大到小)的数组有5个元素,从键盘输入一个数,要求按原排序的规律将它插入到数组中
#include
void main()
{
int i,x,j;
int a[6]={1,5,10,15,20};
scanf("%d",&x);
for(i=0;i<5;i++)
if(x<a[i])
{
j=i; /*当这个数比当前数小时,用j记住当前位置,即j=i,中断循环。比当前数大时继续下一个(小应当在左侧,大则在右侧) */
break;
}
for(i=5;i>=j;i--)
a[i+1]=a[i]; /*将位置j以后的数据都向后移一位*/
a[i+1]=x; /* 把要插入的数x放到a[i]中,因为i--后 i 比实际要插入的位置少1,所以真正插入的位置应该i+1*/

for(i=0;i<=5;i++) /*这时一共有6个数*/
{
printf("%d ",a[i]);
}
}

改过来了,自己看吧:
#include"stdio.h"
void main()
{
int a[6]={1,3,5,7,9};
int i,j,n;
scanf("%d",&n);
for(i=0;i<=4;i++)
{
if(n>a[4])
a[5]=n;
else
if(n>=a[i]&&n<=a[i+1])
{
for(j=5;j>i;j--)
a[j]=a[j-1];
a[i+1]=n;
break;
}
}
for(i=0;i<=5;i++)
printf("%d",a[i]);
}

程序1:这个是输入10个数 先排序 再插入一个数 再排序 数组大小你可以自己更改 #include <stdio.h> void main() { int i,j,m,temp,a[11]; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) for(j=i+1;j<10;j++) if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } for(i=0;i<10;i++) printf("%d ",a[i]); scanf("%d",&m); for(i=0;i<10;i++) if(a[i]>m) { temp=a[i]; a[i]=m; m=temp; } a[10]=m; for(i=0;i<11;i++) printf("%d ",a[i]); printf("\n"); } 程序2:如果题中已给排好序的数组 不必自己输入的话 #include <stdio.h> void main() {int a[11]={1,4,6,9,13,16,19,28,40,100}; int temp1, temp2,number,end,i,j; printf("array a:\n"); for (i=0;i<10;i++) printf("%5d",a[i]); printf("\n"); printf("insert date:"); scanf("%d",&number); end=a[9]; if(number>end) a[10]=number; else {for(i=0;i<10;i++) {if(a[i]>number) {temp1=a[i]; a[i]=number; for(j=i+1;j<11;j++) {temp2=a[j]; a[j]=temp1; temp1=temp2; } break; } } } printf("now,array a:\n"); for(i=0;i<11;i++) printf("%d ",a[i]); }

楼主能说具体点吗。有很多方法,比如用字符串连接的函数,strc...什么什么的函数,还可以直接插入一个数,和数组中的数比较大小

main()
{int a[11],i,m,j;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
if(m>a[9]) a[10]=m;
else
for(i=0;i<10;i++)
if(m<a[i])
{for(j=9;j>=i;j--)
a[j+1]=a[j];
a[i]=m;
break; }
for(i=0;i<11;i++)
printf("%-4d",a[i]);
printf("\n");
getch();
}

比如在第n个数中插入一个m


c语言如何在一批数中找最大数?
利用C语言在一批数中找最大数的一般方法如下:(1)将数据存入一个一维数组中,例如存入a数组中。(2)在数组中找最大值(假设用变量max存放最大值)。首先将a[0]视为最大数,即首先使max=a[0]。将除a[0]之外的其他所有元素(用a[i]表示)逐个与max比较,若a[i]>max,则a[i]为目前的...

c语言中如何在数字前放上0
1、使用printf函数的格式化输出即可实现在数字前补0。2、例如:printf("a=%06d\\n", a);\/\/输出6位十进制整数 左边补0,显示 a=001234;这里%06d的0就是指在前面补0占位,6代表位宽。一般这两个要一起用。

C语言中,如何输入两个数?
在 C 语言中,您可以使用以下方法输入两个数:1. 使用`scanf()`函数输入两个数。```c include <stdio.h> int main() { int num1, num2;printf("请输入一个整数:");scanf("%d", &num1);printf("请再输入一个整数:");scanf("%d", &num2);printf("您输入的两个整数分别是:%d ...

C语言中,如何求一个数的次方?
在C语言中,可以使用内置函数pow或者自定义函数求次方。以下是两种常见的方法:① 使用内置函数pow:pow函数是C语言标准库中的一个内置函数,用于计算一个数的次方。其原型:double pow(double base, double exponent)。其中base是要计算次方的基数,exponent是要计算的指数。例如,以下代码计算5的3次方:...

c语言中,如何求三个数的最大值?
c语言求三个数的最大值的回答如下:在C语言中,我们可以使用条件语句(if...else)来比较三个数并找出最大值。以下是一个简单的示例程序:#include <stdio.h> int main() { int a, b, c, max; printf("请输入三个整数:"); scanf("%d %d %d", &a, &b, &c);if (a >...

c语言中如何输入整数
根据需要一般选择如下3种方法:1,已知数量,且个数较少:scanf("%d%d%d",&a&b&c);2,已知数量,但数量较多:for(int i=0;i<n;i++)scanf("%d",&a[i]);3,不知道数量 int i=0;while(scanf("%d",&a[i])){ i++;}

C语言中如何在运算结果的数字前加一个符号
在输出函数printf中,增加格式“+”在“%”号后就可以了。下面在手机上编程来演示一下。手机上打开易历知食软件内部的微C程序设计,并输入示例代码,如下图:(程序中以整数和浮点数作为示例,各输出一个正数和一个负数)点击“运行程序”后,运行结果如下图:"运算结果的数字前加一个符号"的效果就...

c语言中,如何在自己输入一个任意数之后,从输入数字最后一位开始,
你的这个问题难点在于判断输入的数是多少位的。我这里运用了一个将数转换成字符数组(sprintf函数),然后用strlen函数算出这个int型的数有多少位。后面再利用一个字符数组来接收修改后的数,再由字符串转成数字就好。具体见代码。代码在linux系统下 gcc编译器下运行通过,结果如下。在vs下同样可以通过 ...

C语言中,如何输出带小数的数?
利用C语言使输出值为小数的编程方法和思想如下:1.首先需要定义一个变量作为后续需要输出的数。这里以定义一个变量a为例。需要注意的是,整型int是不支持转化的。2.然后使用scanf()函数接受从键盘输入的一个数,这样就为变量a成功赋值。3.接着使用printf语句来对数a进行小数化的处理。处理格式为:【%....

c语言中,如何实现输入一个整数,输出一个偶数或者奇数?
在C语言中,你可以通过判断输入的整数除以2的余数来实现这个功能。如果余数为0,那么这个数就是偶数;否则,它就是奇数。下面是一个简单的C语言程序实现这个功能:在这个程序中,我们首先使用scanf函数从用户那里获取一个整数。然后,我们使用模运算符(%)来判断这个数是偶数还是奇数。如果num % 2等于0...

墨竹工卡县17510623884: 关于C语言在数组里插入一个数 -
进娟加替: #include"stdio.h" #include"string.h" void main() { int a[11]={93,58,2,65,4,30,24,45,78,122}这里定义数...

墨竹工卡县17510623884: c语言在数组中插入一个数该怎么写
进娟加替: 可以这么考虑!倒数第二个for循环你错了啊,那个判断条件应该是i>location-1

墨竹工卡县17510623884: 用C语言写的一个程序:有一个已排好的数组,要求输入一个数后,按原来排序的规律将它插入数组中. -
进娟加替: 代码如下:#include<stdio.h> int main() { int a[20],i=0,n,x,k,j; printf("请输入一组顺序数(从小到大的顺序):"); while(~scanf("%d", &a[i])) { i++; if(getchar() == '\n') break; //在这判断,否则原先的第一个数字读不进去 } n=i; for(i=0;i<n;i++)...

墨竹工卡县17510623884: 用C语言编写程序,实现在数组中指定位置插入一个新的数字?(数组不是排序好的)谢谢
进娟加替: 这有什么难的呢.把那个位置向后的所有元素往后挪一个位置,空出当前位置, 再放进去.

墨竹工卡县17510623884: c语言中怎样用代码添加数组成员数 -
进娟加替: C语言的数组有动态数组和静态数组两种.1 静态数组. 对于静态数组,无法新增加数组成员数量.所以一定要最初始定义足够大的数组,然后可以用一个整型变量维护数组中现有成员个数,再动态增加实际成员个数. 比如 int a[1000]; int n =...

墨竹工卡县17510623884: C语言将一个数插入到已知数组中的问题 -
进娟加替: #include <stdio.h> int main() { int i; int a[10] = {1,2,3,4,5}; for(i = 4;i>=2;i--) { a[i+1] = a[i]; } a[2] = 100; for(i = 0;i<6;i++) { printf("%d ",a[i]); } printf("\n"); return 0; } 可以的,只是你第三个数没往后移,也就是a[2],循环条件是i>=2

墨竹工卡县17510623884: 关于C语言在一个排好序的数组里插入一个数的问题 急!~ -
进娟加替: 当然去掉会错啦~~因为这里break的作用就是在插入的数与数组的数逐个比较的for循环中,一旦发现比插入数小的元素就跳出for循环(意思就是找到插入位置啦,不用再往下比较啦~~),如果没有break就会将插入的数与数组所有的数都比较一遍,当然是没有意义的,这样做只会将插入的数放在数组的最后..

墨竹工卡县17510623884: C语言程序中,如何在原有数列中插入一个数 -
进娟加替: int a[3]={1,2,3},b[4],c,d,i=0,j=0;scanf("您输入的数以及它所插在第几个数后面%d%d",&c,&d);for(;i<3;i++){if(i<d)b[j++]=a[i];if(i==d)b[j++]=c;b[j++]=a[i];if (i>d)b[j++]=a[i]; }for(j=0;j<4;j++)printf("%d\n",b[j]);话说,其实这个运行出来结果貌似不是理想中的.我也不知道为什么,但思想就在这了.我这笨脑子想了半个上午.如果各位看出哪里不对,麻烦告诉我一声,感激~

墨竹工卡县17510623884: 有一个已安排好的数组,要求输入一个数后,按原来的规律将它插入数组中.用c语言编程!!! -
进娟加替: 假如a[10]从小到大排好了,变量定义省略,插入数为kmain() {for (i=0,i<10,i++) {if (a[i]>k){for (j=10,j>i,j--) a[j]=a[j-1];a[i]=k;continue;} }} 原理,假如你有1 2 3 4 6 7 8 9,插入5,那么先把6789向右边移动,把我的位置留出来,然后把5插进去

墨竹工卡县17510623884: 求教C语言:向一个本身有序的数组中插入一个整数,保持原来顺序不变. -
进娟加替: 这难吗.最简单的办法:从头开始比较,找到它的位置后,把后面的数往后挪.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网