一个N简单的问题 请大家帮帮忙

tonghai84 2004-12-22 07:37:23
一个已给出数据2。5。7。8。10
输入一个数[不超过15]。将数字差到比他小的数字后面。

比如出入9:

显示结果为:
2.5.7.8.9.10


如输入6“
结果为

2.5.6.7.8.10

要用函数 最好写出思路。谢谢。
...全文
155 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonghai84 2005-01-03
  • 打赏
  • 举报
回复
#include "iostream.h"
void Insert(int data[],int n,int m);
void show(int data[],int n);
void main(int argc, char* argv[])
{
int array[6]={2,5,7,8,10},m;
cout<<"Input a number:";
cin>>m;
if(m>10)
array[5]=m;
else
Insert(array,6,m);
show(array,6);
}
void Insert(int data[],int n,int m)
{
int x,y,z,j;
for(x=0;x<n;x++)
{
if(m<data[x])
{
y=data[x];
data[x]=m;
break;
}
}
for(z=x;z<n;z++)
{
j=data[++x];
data[++x]=y;
y=j;
if(x=5)
{
break;
}
}
}
void show(int data[],int n)
{
for(int x=0;x<n;x++)
{
cout<<data[x]<<endl;
}
}



大哥们,可以帮助我把这个程序的报告给写一下吗?小弟感激不尽啊!!!!
welsly 2004-12-22
  • 打赏
  • 举报
回复
为什么不用链表呢?移动数据时很耗时间的哦,一旦数据插入的多了
snow810211 2004-12-22
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
void Insert(int data[],int n,int m);
void Show(int data[],int n);
void main()
{
int m;
int array[6]={2,5,7,8,10};
printf("Input a number (<15) :");
scanf("%d",&m);
if(m>15)
{
printf("Input error!\n");
exit(1);
}
printf("\nBefore insert %d :",m);
Show(array,5);
Insert(array,5,m);
printf("\nAfter insert %d :",m);
Show(array,6);
printf("\n");
}

void Show(int data[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%3d",data[i]);
}
printf("\n");
}

void Insert(int data[],int n,int m)
{
int i;
if(m>=data[n-1])
{
data[n]=m;
return;
}
for(i=n-1;i>=0;i--)
{
if(data[i]>m)
{
data[i+1]=data[i];
}
else
{
data[i+1]=m;
return;
}
}
data[0]=m;
return;
}
思路:
1.从后面一个一个的比较(当然数组够大,所以我写的是6,而不是5),先看是不是比最后一个大,如果是就直接加在最后好了...如果不是呢,就把当前元素向后面移动一个..一直比下去..
2.找到了比m小的元素后,把m插入到该元素的后面。。。
3.最后注意没有找到的情况,就把data[0]=m好了。(开始我就没有注意到:))
。。。。。
请参考。。。
dongyuanzhang 2004-12-22
  • 打赏
  • 举报
回复
你之前的数是有序的吗?从小到大循环比较就行了!
riso8371 2004-12-22
  • 打赏
  • 举报
回复
不会吧这种问题也上CSDN
tonghai84 2004-12-22
  • 打赏
  • 举报
回复
帮忙啊。。。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧