帮忙用C语言完成如下程序:
设有一个有序数组,元素有10,18,27,35,38,由键盘输入一个元素,把这个元素插入到这个数组中,但要保持数组的有序性,在线等。。。
#include <stdio.h>
int* sort(int *a, int insert) {
int i = 0, j = 0;
while ( insert > a[i] )
i++;
int *pm = (int*)malloc(sizeof(int)*5);
for (j = 0; j < 5; j++){
if (j == i) {
pm[j] = insert;
continue;
}
pm[j] = a[j];
}
return pm;
}
void main(void) {
int m[] = {10, 18, 27, 35, 38};
int insert;
int *result = NULL;
scanf("%d", &insert);
result = sort(m, insert);
}
我也是菜鸟,你看看
program demo;
var
i,n : integer;
data : array [1..6] of integer;
BEGIN
data[1] := 10; data[2] := 18;
data[3] := 27; data[4] := 35;
data[5] := 38; i := 0;
read (n); i := 6;
while (i>1) and (n < data[i-1] ) do
begin
data[i] := data[i-1];
Dec(i);
end;
data[i] := n;
for i := 1 to 6 do
write (data[i], );
END.
#include <stdio.h>
#include<stdlib.h>
void sort(int a[], int insert)
{
int i = 0, j = 0;
while ( insert > a[i] )
i++;
for (j = i; j < 5; j++)
a[j+1] = a[j];
a[j-1] = insert;
}
void main(void) {
int m[10] = {10, 18, 27, 35,38};
int i,insert;
int *result = NULL;
scanf("%d", &insert);
sort(m, insert);
for(i=0;i<6;i++)
printf(" %d",m[i]);
}
#include<iostream.h>
void sort(int a[], int n, int insert)
{
int i = 0, j,m,p[6];
while ( insert > a[i] )
i++;
for(j=0;j<i;j++)
p[j]=a[j];
p[j]= insert;
for(m=i;m<n;m++)
{ p[j+1]=a[m]; j++; }
for(int k=0;k<n+1;k++)
cout<<p[k]<<" ";
cout<<endl;
}
void main(void) {
int m[5] = {10, 18, 27, 35, 38};
int insert;
for(int i=0;i<5;i++)
cout<<m[i]<<" ";
cout<<endl;
cout<<"输入";
cin>>insert;
sort(m,5,insert);
}