c++初学者的问题:

来源:百度知道 编辑:UC知道 时间:2024/05/23 15:39:31
我刚学c++.我想把三个数按从小到大的先后顺序排列.
#include<iostream.h>

int main()
{
int a[]={9,4,6};
int temp;
int i=0;
for(i=0;i<3;i++)
{
if(a[i]>a[i+1])
temp=a[i];a[i]=a[i+1];a[i+1]=temp;
cout<<a[i]<<endl;
}
return 0;
}
这里哪里出问题了啊???
运行后出现的是
4
6
1245120

#include<iostream.h>

int main()
{
int a[]={9,4,6};
int temp;
int i=0;
for(i=0;i<3;i++)
{
if(a[i]>a[i+1])
{temp=a[i];a[i]=a[i+1];a[i+1]=temp; } //注意这里,这是交换,需要加{ }//完成的
cout<<a[i]<<endl;
}
return 0;
}

#include<iostream.h>

int main()
{
int a[]={9,4,6};
int temp;
int i=0;
for(i=0;i<2;i++) //3改为2,当i为2时,a[i+1]就是a[3]超出定义的范围了
{
if(a[i]>a[i+1])
temp=a[i];a[i]=a[i+1];a[i+1]=temp;
cout<<a[i]<<endl;
}

return 0;
}

#include<iostream.h>

int main()
{
int a[]={9,4,6};
int temp;
int i=0;
for(i=0;i<3;i++)
{
if(a[i]>a[i+1])
temp=a[i];a[i]=a[i+1];a[i+1]=temp; <---------出现在这
cout<<a[i]<<endl;
}
return 0;
}

你没有加大括号
if语句只执行第一个分号前的
另外你最好把输出语句放最后