please where is the error in this code doesn't run

#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[i];
          ages[b]=i;
        }
      }
    }
  }
  cout<<ages[i];

  return 0;
}

Code indented and tags added. -Narue

>ages[b-1]=ages;
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:

ages[b-1]=ages[b];

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.

This article has been dead for over six months. Start a new discussion instead.