HI I just started learning c++. Below is the bubble_sorting program I wrote. Complied no error under eclipse(Ubuntu). But the result is not right.

What is happening is, no matter what input numbers I provided, after sorting, the smallest number would be set to zero. Please, can anyone point out where did I do wrong. Many thanks in advance!

//start of the program

//Bubble_sorting

#include <iostream>

using namespace std;

void BubbleSort(int *list,int len)

{

int i,j,temp;

for(i=0;i<len;i++)

for(j=0;j<len-i;j++)

{

if(list[j]>list[j+1])

{

temp=list[j];

list[j]=list[j+1];

list[j+1]=temp;

}

}

}

int main ()

{

int len;

cout<<"input the number of int to sort"<<endl;

cin>>len;

int *p = new int[len];

cout<<"Input ten number:";

for(int i=0;i<len;i++)

cin>>p[i];

cout<<endl;

cout<<"Before sorting: ";

for(int i=0;i<len;i++)

cout<<p[i]<<" ";

cout<<endl;

BubbleSort(p,len);

cout<<"After sorting: ";

for(int i=0;i<len;i++)

cout<<p[i]<<" ";

cout<<endl;

cout<<p[0]<<endl;

cout<<endl;

delete[] p;

p = NULL;

return 0;

}