有关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=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 所以第十一个元素是不存在的
数组和指针时一样的,是很危险的 用的时候一定要小心,切记
希望对你有帮助
一起学习
-