各位大侠!求救!这个程序哪儿有错?

放羊大亨 2009-11-27 05:09:30
#include<iostream>
using namespace std;

void swap(int *pa,int *pb);
void sort(int a[],int size) ;
int main()
{
//cout<<"please input 10 intengers:\n";
int n,data;
cout<<"输入数组元素的个数:";
cin>>n;
cout<<"请输入"<<n<<"个整数:"<<endl;

//int a[n];
int *a=new int[n];

for(int i=0;i<n;i++)
{
cin>>data;
a[i]=data;
}
sort(a,n);
cout<<"the sorted are as following:"<<endl;
for(int j=0;j<10;j++)
{
cout<<a[j]<<" ";
}
delete []a;

system("pause");

return 0;
}


void swap(int *pa,int *pb)
{
int tmp=*pa;
*pa=*pb;
*pb=tmp;
}

void sort(int a[],int size) //size为数组大小,即要排序的元素个数
{
//插入排序
for(int i=2;i<size;i++)
{
int key=a[i];
int n=i;
for(int j=i-1;j>=0;j--)
{
if(key<a[j])
{
swap(&a[j],&a[n]);
n--;
}
else
break;
}
}
}

输出怎么是这样? 多谢!
...全文
119 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tingfengshr 2009-11-27
  • 打赏
  • 举报
回复
你是贴的有问题还是怎么的,<<这个符号好像很多地方有问题。
另外同意1楼,你写的如果是个动态数组,就不要在循环里面限制循环次数。
heroic8 2009-11-27
  • 打赏
  • 举报
回复
for(int j=0;j <10;j++) 
{
cout <<a[j] <<" ";
}


如果我输入5个元素,那这的
j < 10
过界了.
qizhi0119 2009-11-27
  • 打赏
  • 举报
回复
for(int j=0;j <10;j++)
这块有问题,j<n
然后你排序里写的有问题,
你写的好像不是插入排序..
插入排序算法你可以上网上查查.看看,应该示例也很多.
yuan19 2009-11-27
  • 打赏
  • 举报
回复
?输出为哪样?
stardust20 2009-11-27
  • 打赏
  • 举报
回复
cout < <"the sorted are as following:" < <endl;
for(int j=0;j <10;j++) //这边的10应该是n吧
{
cout < <a[j] < <" ";
}

65,186

社区成员

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

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