输入若干有序数放在数组中。然后输入一个数,插入到此有序数列中,插入后,数组中的数仍然有序。
#include<stdio.h>#defineM6intwnn1(int*,int,int);voidwnn2(int*,int);voidmain(){intx,n,...
#include <stdio.h>
#define M 6
int wnn1(int *,int,int);
void wnn2(int *,int);
void main()
{int x,n,t,s[M]={10,15,18,24,29,35};
printf("input x:\n");
scanf("%d",&x);
n=M;
t=wnn1(s,x,n);
wnn2(s,t);
}
int wnn1(int *a,int x,int n)
{int i,j=0;
while(j<n&&a[j]<x)j++;
for(i=n-1;i>=j;i--)a[i+1]=a[i];
a[j]=x;
n++;
return n;
}
void wnn2(int *a,int n)
{int i;
for(i=0;i<n;i++)printf("%4d",a[i]);
printf("\n");
}
为什么运行最后总是有个7出现,另外,数字大于35为什么就不能正常插入呢? 展开
#define M 6
int wnn1(int *,int,int);
void wnn2(int *,int);
void main()
{int x,n,t,s[M]={10,15,18,24,29,35};
printf("input x:\n");
scanf("%d",&x);
n=M;
t=wnn1(s,x,n);
wnn2(s,t);
}
int wnn1(int *a,int x,int n)
{int i,j=0;
while(j<n&&a[j]<x)j++;
for(i=n-1;i>=j;i--)a[i+1]=a[i];
a[j]=x;
n++;
return n;
}
void wnn2(int *a,int n)
{int i;
for(i=0;i<n;i++)printf("%4d",a[i]);
printf("\n");
}
为什么运行最后总是有个7出现,另外,数字大于35为什么就不能正常插入呢? 展开
1个回答
展开全部
定义数组的时候,增加一个单元即可
#include <stdio.h>
#define M 6
int wnn1(int *,int,int);
void wnn2(int *,int);
void main()
{int x,n,t,s[M+1]={10,15,18,24,29,35};
printf("input x:\n");
scanf("%d",&x);
n=M;
t=wnn1(s,x,n);
wnn2(s,t);
}
int wnn1(int *a,int x,int n)
{int i,j=0;
while(j<n&&a[j]<x)j++;
for(i=n-1;i>=j;i--)a[i+1]=a[i];
a[j]=x;
n++;
return n;
}
void wnn2(int *a,int n)
{int i;
for(i=0;i<n;i++)printf("%4d",a[i]);
printf("\n");
}
#include <stdio.h>
#define M 6
int wnn1(int *,int,int);
void wnn2(int *,int);
void main()
{int x,n,t,s[M+1]={10,15,18,24,29,35};
printf("input x:\n");
scanf("%d",&x);
n=M;
t=wnn1(s,x,n);
wnn2(s,t);
}
int wnn1(int *a,int x,int n)
{int i,j=0;
while(j<n&&a[j]<x)j++;
for(i=n-1;i>=j;i--)a[i+1]=a[i];
a[j]=x;
n++;
return n;
}
void wnn2(int *a,int n)
{int i;
for(i=0;i<n;i++)printf("%4d",a[i]);
printf("\n");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询