>ages[b-1]=ages[i];
That's your error. i isn't an index, it's a content value, and the value could very well exceed 999, which is the largest possible index for ages. Change that line to:
You probably also want to restructure your code so that it has specific sections for initializing the array, sorting the array, and printing the sorted array:
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
int ages[1000];
int size=1000;
int i,a,b;
for(i=0;i<size;i++)
{
ages[i]=rand();
}
for( a=1;a<size;a++)
{
for( b=size-1;b>=a;b--)
{
if(ages[b-1]<ages[b])
{
i=ages[b-1];
ages[b-1]=ages[b];
ages[b]=i;
}
}
}
for( i=0;i<size;i++)
{
cout<<ages[i]<<' ';
}
return 0;
}
I'm also not sure if you really wanted this functionality or not, but as it is the sort is descending, not ascending, which is the most common preference.
Reputation Points: 6442
Solved Threads: 1393
Bad Cop
Offline 11,807 posts
since Sep 2004