#include<stdio.h>
void main()
{
int a[10],i,j,k;
int x,d=0,h=9,m,temp;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
for(j=0;j<=8-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("輸出數是:\n");
for(i=0;i<10;i++)
printf("%d\n",a[i]);
scanf("%d",&x);
while(d<=h)
{
m=(d+h)/2;
if(x==a[m])break;
else if(x>a[m])
d=m+1;
else h=m-1;
}
if(d<=h) printf("%d",x);
else
{
for(k=0;k<=8&&x>a[k];k++)
for(i=9;i>=k;i--)
{
a[k]=x;
a[i+1]=a[i];
}
}
for(k=0;k<11;k++)
printf("%d\n",a[k]);
}
uj5u.com熱心網友回復:
最后的插入部分可以這樣寫
int k;
for ( k=0; k<10; k++ )
if ( a[k] > x )
break;
for ( int j=9; j>=k; j++ )
a[j+1] = a[j];
a[k] = x;
另外,陣列a應該定義得更大一些,否則插入一個數的話,就會導致越界訪問
uj5u.com熱心網友回復:
程式還有點錯,x輸入后得到的結果中出現2個x的值,x后面的一個數被它取代了uj5u.com熱心網友回復:
先移動資料,最后再寫入x的值轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/154290.html
標籤:數據庫及相關技術
下一篇:SpringBoot + Vue + ElementUI 實作后臺管理系統模板 -- 后端篇(四): 整合阿里云 短信服務、整合 JWT 單點登錄
