大神们,求解一道算法编程,最好只用C语言编写,拜托啦= =

2、算法编程:已知线性表(a0,a1,…,an-1)中元素递增有序且按顺序存储于计算机内。要求用顺序表作为存储结构,设计算法完成:1)在表中查找数值为x的元素;2)若找到... 2、算法编程:已知线性表(a0,a1,…,an-1)中元素递增有序且按顺序存储于计算机内。要求用顺序表作为存储结构,设计算法完成:1)在表中查找数值为x的元素;2)若找到将其与后继元素位置相交换;3)若找不到将其插入表中并使表中元素仍递增有序。 展开
 我来答
听不清啊
高粉答主

2018-10-12 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>
#include<stdlib.h>
int main()
{int n,i,j,m,t,x,a[1000];
 scanf("%d",&n);
 a[0]=rand()%25;
 printf("%d",a[0]);
 for(i=1;i<n;i++)
 {a[i]=a[i-1]+rand()%10+1;
  printf(" %d",a[i]);
 }
 printf("\nx=");
 scanf("%d",&x);
 for(i=0,j=n-1;i<j;)
 {m=(i+j)/2;
  if(a[m]==x){j=m; break;}
    else if(a[m]<x)i=m+1;
      else j=m;
 }
 if(a[j]==x)
 {t=a[j]; a[j]=a[j+1];a[j+1]=t;}
 else
 {if(a[j]<x)j++;
  for(i=n;i>j;i--)a[i]=a[i-1];
  a[j]=x;
  n++;
 }
 for(i=0;i<n;)
   printf("%d ",a[i++]);
 printf("\n");
 return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式