当前位置:新励学网 > 秒知问答 > 一道C语言改错题

一道C语言改错题

发表时间:2024-07-21 05:45:59 来源:网友投稿

3个错误:

数组是升序排列,i,j作为一个区间逐步缩小来查找,每次区间范围缩小一半,当xa[k]时,即x在a[k]右边范围则将下限i=k+1,当a[k]==x时,直接跳出;

找到a[k]后删除,使a[k]后面的数向前移动,a[9]置0;

3.输出新的数组,前面也加个输出原始数据对比下。

#includestdafx.h

#include

usingnamespacestd;

intmain()

{

intx,t1,t2,i,j,k;

inta[10]={5,11,21,31,41,51,61,71,81,91};

printf(请输入需要删除的一个整数);

scanf_s(%d,&x);

printf(原始数据是:\n);

for(i=0;i<10;i++)

printf(%5d,a[i]);

printf(\n);

i=0;

j=9;

while(i<=j)

{

k=(i+j)/2;

if(a[k]==x)

break;

if(a[k]>x)

j=k-1;

if(a[k]<x)

i=k+1;

}

if(i>j)

printf(需要删除的数不在数组中\n);

else

{

for(i=k;i<10;i++)

a[i]=a[i+1];

a[9]=0;

//printf(%5d,a[i]);

}

for(i=0;i<10;i++)

printf(%5d,a[i]);

printf(\n);

system(pause);

return0;

}

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!