Discussione: segmentation fault - aiuto

qualcuno mi dice xk se i votanti sono piu di 100 va in segmentation fault?? sad

//Lorenzo M.G.
using namespace std;
#include <iostream>
#include <cstdlib>
#include <ctime>

void riempiarray(int [], int, int);
void contavoti(int [], int, int[]);
void attribuiscicandidati(int [], int);
void ordinaarray(int[],int[],int);
void scambia(int &,int&);

int main()
{

  int num_votanti=0;
  int num_candidati=0;
  const int size_voti= 1000;
  const int size_candidati=100;
  int voti[size_voti]={};
  int risultato[size_candidati]={};
  int candidati_elez[size_candidati]={};
  int votanti, candidati;
  
  do
    {
  cout<< "numero votanti: ";
  cin>>votanti;
    }
  while(votanti <1);

  do
    {
  cout<< "numero candidati: ";
  cin>>candidati;
    }
  while(candidati < 1);

  srand(NULL);
  attribuiscicandidati(candidati_elez, candidati);
  riempiarray(voti, votanti, candidati);
  contavoti(voti, votanti, risultato);
  ordinaarray(risultato, candidati_elez, votanti);
  for(int i=0;i<candidati;i++)
    cout << "in posizione "<< i+1<<" il candidato: "<< candidati_elez[i]<< ", con "<< risultato[i]<< " voti"<< endl;

  return 0;
}


void riempiarray(int a [], int n, int x)
{
  for (int i=0; i<n; i++)
    {
      a[i]=((rand()%x)+1);
    }

}

void contavoti(int a[], int n, int b[])
{
  for (int i=0; i<n; i++)
    {
     
      b[a[i]-1] += 1;
    }
}

void attribuiscicandidati(int a[], int num)
{
  for (int i=0; i<num; i++)
    {
      a[i]=i+1;
    }
}

void ordinaarray(int a[],int b[],int num)
{
  for (int i=0; i<num;i++)
    {
      int indice=i;
      for(int j=i; j< num-1;j++)
    {
      if (a[i]< a[j+1])
       indice = j+1;
           }
      scambia(a[i],a[indice]);
      scambia(b[i],b[indice]);
    }
}
void scambia(int &a, int &b)
{
  int temp=a;
  a=b;
  b=temp;
}
701 4g white # ubuntu eee 8.04.1 # learning in progress

Re: segmentation fault - aiuto

risolto! big_smile ma ve lo lascio se volete divertirvi un poco.. big_smile

701 4g white # ubuntu eee 8.04.1 # learning in progress

Re: segmentation fault - aiuto

Dov' era il problema? hmm

I tuoi programmi su una penna con linux: cambia la tua vita con un klik
Tutorial Brainfuck (incompleto)
Linux user #482342
stable@eeepc701

Re: segmentation fault - aiuto

necrosis ha scritto:

Dov' era il problema? hmm

se te lo dico non è piu divertente dopo big_smile wink è nel passaggio di una variabile cm pensavo io, ma ho dovuto farla vedere ad un esercitatore all'uni perche io oramai non sarei riuscito a vederlo.. in fondo in ordinaarray ci va candidati invece che votanti wink tongue piu qualche altra finezza, ma l'errore era li wink

701 4g white # ubuntu eee 8.04.1 # learning in progress

Re: segmentation fault - aiuto

outer heaven ha scritto:
necrosis ha scritto:

Dov' era il problema? hmm

se te lo dico non è piu divertente dopo big_smile wink

Eh vabbe, ma io in c++ ho programmato pochissimo lol

I tuoi programmi su una penna con linux: cambia la tua vita con un klik
Tutorial Brainfuck (incompleto)
Linux user #482342
stable@eeepc701

6 Ultima modifica di outer heaven (21-11-2008 16:02:34)

Re: segmentation fault - aiuto

necrosis ha scritto:
outer heaven ha scritto:
necrosis ha scritto:

Dov' era il problema? hmm

se te lo dico non è piu divertente dopo big_smile wink

Eh vabbe, ma io in c++ ho programmato pochissimo lol

anche io.. è da settembre e basta wink

701 4g white # ubuntu eee 8.04.1 # learning in progress

Re: segmentation fault - aiuto

si, ma io ci ho "programmato" 2(due) giorni lol

I tuoi programmi su una penna con linux: cambia la tua vita con un klik
Tutorial Brainfuck (incompleto)
Linux user #482342
stable@eeepc701

Re: segmentation fault - aiuto

necrosis ha scritto:

si, ma io ci ho "programmato" 2(due) giorni lol

ahhhh!:lol:
beh fai conto che sia python.. un po più figo wink

701 4g white # ubuntu eee 8.04.1 # learning in progress

Re: segmentation fault - aiuto

Vebbe, parte la ho capita perchè vagamente simile anche come struttura al C, che parecchio tempo fa studiai abbastanza bene.
Poi vabbe, ho adottato il python perchè è più immediato big_smile .

Ciao ciao
Necrosis

I tuoi programmi su una penna con linux: cambia la tua vita con un klik
Tutorial Brainfuck (incompleto)
Linux user #482342
stable@eeepc701