Discussione: segmentation fault - aiuto
qualcuno mi dice xk se i votanti sono piu di 100 va in segmentation fault?? ![]()
//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;
}