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;
}
}
改为:
for(i=1;i<=8;i++)
{
if(num>count[i] )//你是由大到小排列,应该用大于
{
index=i;
break;
}
}
11111111111111111111111111111