c语言题目解

来源:百度知道 编辑:UC知道 时间:2024/05/12 06:39:50
1、有一个已经排好序的数组(3 ,5,9,15,28,45,80,88,92)。现输入一个数,要求按原来的规律将它插入数组中。
插入算法要求用子程序实现,在主程序中实现输入输出。

#include<stdio.h>
int main(void)
{int j,i,n,a[10]={3,5,9,15,28,45,80,88,92};
scanf ("%d",&n);
for (i=0;i<=8;i++)
if (a[i]>n)
break;
for (j=8;j>=i;j--)
a[j+1]=a[j];
a[i]=n;
for (i=0;i<=9;i++)
printf ("%d ",a[i]);
}

从头比较,比哪个小就插在哪个后面.因为你原来的顺序的,可以这么做

#include<stdio.h>
void function(int a[10])
{
int x;
scanf("%d",&x);
for(int i=0;i<10;i++)
if(x>a[i]&&x<a[i+1])
{
for(int j=8;j>=i+1;j--)
a[j+1]=a[j];
a[i+1]=x;
}
}
void main()
{
int a[10]={3,5,9,15,28,45,80,88,92};
function(a);
for(int i=0;i<10;i++)
printf("%d,",a[i]);
printf("\n");
}
不懂加我516927865