int i,j,temp;
int count[9];
printf("請輸入數值:\n");
for(i=1;i<=8;i++)
{
printf("count[%d]=",i);
scanf("%d",&count[i]);
}
for(i=1;i<=8;i++)
{
for(j=i+1;j<=8;j++)
{
if(count[j]>count[i])
{
temp=count[i];
count[i]=count[j];
count[j]=temp;
}
}
}
printf("排序後:");
for(int k=1;k<=8;k++)
{
printf("%d ",count[k]);
}
printf("\n");
printf("插入一個數字:");
int num;//要插入的數字
int index;//插入數字的下標
scanf("%d",&num);
//程序走到這裡就不走了 這是怎麼回事 麻煩各位指教
for(i=1;i<=8;i++)
{
if(num>count[i] && num<=count[i+1])
{
index=i;
break;
}
}
printf("%d",index);
for(i=8;i>index;i--)
{
count[i+1]=count[i];
}
count[i]=num;//把num插入到數組裡面
printf("插入數字後排序的結果:");
for(i=1;i<=9;i++)
{
printf("%d",count[i]);
}
printf("\n");
}
麻煩各位了
for(i=1;i<=8;i++)
{
if(num>count[i] && num<=count[i+1])//這裡不對,當i=8時,count[i]就出界了
{
index=i;
break;
}
}
改為:
for(i=1;i<=8;i++)
{
if(num<count[i] )
{
index=i;
break;
}
}