c语言数组插入数据
Ⅰ c语言 将一个数插入一个数组
下面是改好的,具体请看注释:
#include<stdio.h>
int main()
{
int a[11]={1,3,5,15,36,37,58,79,80,95},i,t1,t2;
int j;//这里!这里!这里!这里!需要新定义一个变量来控制数组元素的后移
printf("Previous is:\n");
for(i=0;i<=9;i++)
printf("%5d",a[i]);
printf("\nPlease input a number:");
scanf("%d",&t1);
printf("\nNow is:\n");
for(i=0;i<=9;i++)
{
if(a[i]>t1)
{
for(j=10;j>i;j--) //这里!这里裤清!这里!这里!
{
a[j]=a[j-1];//这里!这里!这里!这里!
}
a[i] = t1;
break; //这里!橘液这里!这里!这里!放错位置了,应该圆纯物在里面
}
}
for(i=0;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
Ⅱ C语言数组插入一个数据的问题
您好,很高兴回答您的问题。
break是在遇到判断条件为真时才执行。这里是当遇到第一个比输入的数大的时候,就用break结束循环,目的就是找到了需要存放这个后来输入的数据的位置。后面的for循环就是将之前找到的位置及之后的数据全部往后挪一位,然后再把新输入的数据放到这个位置上。
不过您程序中给的原始数列也不是排好序的数哦,所以输入数据排序好像不太具有说服力哦。
Ⅲ c语言用指针给数组排序和插入
#include<stdio.h>
#definesize8//元素数组元素个数
intmain()
{
inti,nums[size]={13,27,38,49,65,76,97},n,index,*p=&nums[size-1];
printf("原数组:");
for(i=0;i<size-1;i++)
printf("%d",nums[i]);
printf("
输入要插入的数字:");
scanf("%d",&n);
printf("输入要插入在第几个数字后面:");
scanf("%d",&index);
while(p>&nums[index])
{
*p=*(p-1);
p--;
}
*p=n;
printf("插入后的数组:");
for(i=0;i<size;i++)
printf("%d",nums[i]);
return0;
}