Problema

di il
4 risposte

Problema

Qualcuno saprebbe darmi una mano? Mi da errore nello swap non capisco cosa sbaglio.
Scrivere un programma in cui attraverso il generatore di numeri pseudocasuali si generino gli elementi di un array monodimensionale di dimensioni 100 di char appartenenti al dominio [a;b,c] . Ogni qual volta un elemeto dell'array contenente il carattere 'c' preceda un elemento contenente il carattere 'b', si sostituisca il carattere 'c' con il carattere 'a'.

#include <iostream>
#include <ctime>
#include <cstdlib>

#define dim 10

using namespace std;

int main(){


char vet[dim];
time_t t;
int x, i;
char temp;

srand((unsigned)time(&t));

for(i=0;i<dim;i++){
    x=rand()%3;
    if(x==0){vet[i]='a';}
    if(x==1){vet[i]='b';}
    if (x==2){vet[i]='c';}
}
for(i=0;i<dim;i++){
    cout<<"Il "<<i+1<<"elemento del vettore e' :"<<vet[i]<<endl;
}
cout<<"Ora il vettore vale :"<<endl;
for(i=0;i<dim;i++){
    if(vet[i]=='c'&&vet[i+1]=='b'){
        temp='c';
        'c' = 'a';
        'a'=temp

    }
}
cout<<vet[i]<<endl;


return 0;
}



4 Risposte

  • Re: Problema

    Ma non devi swappare niente, infatti. Devi sovrascrivere l'elemento del vettore.

    Non uscire fuori dai limiti dell'array.

    Non usare tremila cicli for quando ne puoi usare uno.
  • Re: Problema

    Weierstrass ha scritto:


    Ma non devi swappare niente, infatti. Devi sovrascrivere l'elemento del vettore.

    Non uscire fuori dai limiti dell'array.

    Non usare tremila cicli for quando ne puoi usare uno.
    Come faccio a sovrascrivere l’elemento del vettore?
    E in che senso non devo uscire dai limiti dell’array?
  • Re: Problema

    Nell'ultimo for vai oltre le dimensioni massime
  • Re: Problema

    Per me basterebbe fare un ciclo for di questo tipo:
    for(int i = 1; i < dim; i++){
    	if(vett[i - 1] == ' ' && vett[i] == ' ')
    		vett[i] = ' '
    }
Devi accedere o registrarti per scrivere nel forum
4 risposte