有关c++问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 01:01:07
用vs2008写了这样一段代码
#include<iostream>
using namespace std;
void main()
{ int arrange[10];
for(int i=0;i<=9;i++)
cin>>arrange[i];
for(int j=1;j<10;j++)

{ for(int k=1;k<=j;k++)
{
if (arrange[k]>arrange[k+1])

{
int tem;
tem=arrange[k];
arrange[k]=arrange[k+1];
arrange[k+1]=tem;
}

}

}

for(int m=0;m<=9;m++)
{
cout<<arrange[m]<<" ";
}

}
可是输入数据后却没结果,没排出来。想问下是不是俺的程序有错吖,麻烦各位帮忙解决下!

#include<iostream>
using namespace std;
void main()
{ int arrange[10];
for(int i=0;i<=9;i++)
cin>>arrange[i];
for(int j=0;j<10;j++)

{
for(int k=0;k<10-j;k++)
{
if (arrange[k]>arrange[k+1])

{
int tem;
tem=arrange[k];
arrange[k]=arrange[k+1];
arrange[k+1]=tem;
}

}

}

for(int m=0;m<=9;m++)
{
cout<<arrange[m]<<" ";
}
比较一下,就知道错咋什么地方了
for(int k=1;k<=j;k++) =>for(int k=0;k<10-j;k++)

你这个排序的程序有点问题,

你在输入后,排序的那段代码就出错了 我没有编译器,但是能看出你的错误
你自己再改改

你是打算用每一个数据分别和后面的数据进行比较对吧,
那么第0个数据要和后面的9个数据比较
第10个呢? 还用比吗? 呵呵 所以 第一个for循环应该是<9才对 9就代表了第十个元素 对吧

不出结果的原因就是 你的第十个元素和第十一个元素进行了比较 但是你的数组最长才是10 所以第十一个元素是不存在的

数组和指针时一样的,是很危险的 用的时候一定要小心,切记

希望对你有帮助

一起学习

-