C++冒泡排序,为什么最大值会丢失,第一个数永远是0??

#include
using namespace std;
int main()
{//从小到大排列
int arr[5];
int i,j;
int temp;
for(i=0;i {
cin>>arr[i];
}
for(int i=0;i {
for(int j=0;j {
if(arr[j]>arr[j+1])
{
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}

    }

}
for(i=0;i<5;i++)
{

    cout<<endl<<arr[i];
}
return 0;

}

 #include <iostream>
using namespace std;
int main()
{//从小到大排列 
    int arr[5];
    int i,j;
    int temp;
    for(i=0;i<5;i++)
    {
        cin>>arr[i];
    }
    for(int i=0;i<4;i++) {
        for(int j=i+1;j<5;j++) {
            if(arr[i]>arr[j])
            {
                temp=arr[i];
                arr[i]=arr[j];
                arr[j]=temp;
            }
        }

    }
    for(i=0;i<5;i++)
    {

        cout<<endl<<arr[i];
    }
    return 0;
}

for 循环看不懂,请查一下下标是否越界了

循环条件错误,应该为
for(int i=0;i<num;i++)
{
for(int j=i;j<num;j++)
{
....
}
}

请把代码粘贴全了, 这样我才能...

for循环错了,连左右括号都不一样。

冒泡排序最大值丢失应该是取数组下标出错了吧,循环没写对就会出现这种情况

..还有,你应该看一下什么事冒泡排序,交换也写错了。
for(int i=0;i {
for(int j=i;j {
if(a[i] > a[j])
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}