序列的操作(增,删,去重,合并)
//如果序列有序则直接进行序列的操作,如果序列无序则先进行排序然后在进行序列的操作 //下面的序列都是有序的。
//思路:给要增加的数组多一个位置方便加入
#include<stdio.h>
int main()
{
int n=0,i = 0,add = 0,arr[10]={0};
scanf("%d",&n);
//输入一个有序序列
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
//输入要增加的数
scanf("%d",&add);
for(i=n;i>0;i--)
{
//如果原序列的数大于要增加的数,则让原序列的数向后移动一格
if(arr[i-1]>add)
{
arr[i]=arr[i-1];
}
//如果原序列的数小于要增加的数,则直接插入到原序列数的后面;
else
{
arr[i]=add;
break;
}
}
if(i==0)
{
arr[0]=ad;
}
for(i=0;i<n+1;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
删除
int main(void){
int i = 0,del = 0,n = 0,arr[10]={0},count=0;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&arr[i]);
}
scanf("%d",&del);
//将你要删除的数的位置记录下来
for(i=0;i<n;i++){
if(del==arr[i]){
count = i;
}
}
//用控制语句将你要删除的数不要输出
for(i=0;i<n;i++){
if(i!=count){
printf("%d ",arr[i]);
}
}
return 0;
}
去重
int main(void){
int i = 0,j = 0,n = 0,a[10]={0},count=0;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
j = 0
for(j=i+1;j<n;j++0){
//从第一个进行开始比对如果相等了则去重
if(a[i]==a[j]){
//用count记录那个重复的位置,然后让后面的数顶替这个重复的
for(count=j;count<n-1;count++){
a[count] = a[count+1];
}
n--;因为去重了所有少了一个
j--;防止出现2个以上的重复数字
}
}
}
for(i=0;i<n;i++){
printf("%d",a[i]);
}
return 0;
}
合并
int main()
{
int n=0,m=0,i=0,j=0,arr[10]=0,brr[10]={0};
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<m;i++)
{
scanf("%d",&brr[i]);
}
i=0;
while(i<n&&j<m)
{
if(arr1[i]<arr2[j])
{
printf("%d ",arr[i]);
i++;
}
else
{
printf("%d ",brr[j]);
j++;
}
}
if(i==n)
{
for(;j<m;j++)
{
printf("%d ",brr[j]);
}
}
else
{
for(;i<n;i++)
{
printf("%d ",arr[i]);
}
}
return 0;
# }