有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中,我写的程序运行一直有问题,我自己修改不好,该怎么改才对?
问题描述:
#include<stdio.h>
int main()
{
int a[6]={1,3,5,7,9};
int j,x,t;
for(j=0;j<=5;j++)
printf("%d",a[j]);
scanf("%d",&x);
if(a[4]<x)x=a[5];
else{
a[4]=a[5];
for(j=3;j>=0;j--)
{
if(a[j]>x){a[j+1]=a[j];a[j]=x;}
else {x=a[j+1];break;}
}
}
for(j=0;j<=5;j++)
printf("%d",a[j]);
return 0;
}
答
#include <stdio.h>
int main()
{
int a[6] = {1, 3, 5, 7, 9};
int i, j, x;
scanf("%d", &x);
for (i = 0; i < 5; i++)
{
if (a[i] > x)
{
int temp = a[i];
a[i] = x;
for (j = i + 1; j < 6; j++)
{
int temp2 = a[j];
a[j] = temp;
temp = temp2;
}
break;
}
}
if (i == 5)
{
a[i] = x;
}
for (j = 0; j <= 5; j++)
printf("%d ", a[j]);
return 0;
}