Problema con gli array e i cicli

di il
5 risposte

Problema con gli array e i cicli

Salve a tutti! Sono una matricola alle prese con il c++. la traccia dell'esercizio è la seguente:
?Scrivere un programma che: "?dichiari un array di 50 elementi di tipo int;
?richieda all’utente l’inserimento di un certo numero di elementi fino all’inserimento di un carattere sentinella (per esempio s / n):
•?si gestiscano separatamente la cardinalità dell’array e riempimento dell’array.
si mostri il contenuto dell’array inserito.
fino al primo punto ci sono. arrivati al secondo punto ovviamente in video una volta dichiarato il riempimento se non inserisco nessun carattere flag il programma risponde a tutto; se invece lo inserisco non riesco a far stampare SOLO gli elementi inseriti prima del carattere con la rispettiva posizione, ma ovviamente mi stampa anche le altre rimanenti del riempimento. cosa sbaglio?
(spero di esser stata chiara)

#include <iostream>
#define N 50
using namespace std;
typedef int vet[N];
int main(int argc, char** argv) {
	vet v;
	int i=0;
	int riemp;
	int count=0;
	char s;
	
	cout<<"inserisci il riempimento"<<endl;
	cin>>riemp;
	while(riemp>N){
		cout<<"ERRORE: inserire un riempimento minore di 50: "<<endl;
		cin>>riemp;
	}


	do{
    cout<<"insersci un valore diverso dal carattere flag s:  "<<endl;
   	cin>>v[i];
   	i=i+1;
   	count++;
   	if(v[i]=='s'){
   		cout<<"hai inserito un carattere flag!!!"<<endl;  }
   		
	         for(i=0;i<count;i++){
	         		cout<<"il vettore di posizione "<<i<<" e' "<<v[i]<<endl;
		 }

	   }

	}while(i<riemp);
	
   for(i=0;i<riemp;i++){
		 	cout<<"il vettore di posizione "<<i<<" e' "<<v[i]<<endl;

			 }


	
	return 0;
}
[code]

5 Risposte

  • Re: Problema con gli array e i cicli

    Usa i tag code per il codice e indentalo o non si capiace
  • Re: Problema con gli array e i cicli

    oregon ha scritto:


    Usa i tag code per il codice e indentalo o non si capiace
    ok hai ragione (intendi i commenti?)
    
    #include <iostream>
    #define N 50
    using namespace std;
    typedef int vet[N];
    int main(int argc, char** argv) {
    	vet v;
    	int i=0;
    	int riemp;
    	int count=0;
    	char s;
    	
    	cout<<"inserisci il riempimento"<<endl;
    	cin>>riemp;
    	while(riemp>N){                          /*il riempimento deve essere maggiore della cardinalita',
    	                                                fin quando non viene inserito un riempimento piu' piccolo non esce dal ciclo*/
    	cout<<"ERRORE: inserire un riempimento minore di 50: "<<endl;
    	cin>>riemp;
    	}
    
    
    	do{                                                                                                  
        cout<<"insersci un valore diverso dal carattere flag s:  "<<endl;               /*inserisco gli elementi dell'array i quali devono 
                                                                                                                            essere diversi dalla   lettera 's'*/
       	cin>>v[i];
       	i=i+1;
       	count++;
       	if(v[i]=='s'){
       		cout<<"hai inserito un carattere flag!!!"<<endl;  }                 /*se l'elemento inserito e' uguale ad s allora stampo gli elementi
       		                                                                                             con la posizione he vengono prima di s, mi sono aiutata con un 
       		                                                                                                contatore (ma evidentemente qualcosa ho sbagliato qui)*/
       		
    	         for(i=0;i<count;i++){
    	         		cout<<"il vettore di posizione "<<i<<" e' "<<v[i]<<endl;
    		 }
    
    	   }
    
    	}while(i<riemp);              
    	
       for(i=0;i<riemp;i++){
    		 	cout<<"il vettore di posizione "<<i<<" e' "<<v[i]<<endl;    /*se il carattere s non viene inserito stampo gli elementi normalmente*/
    
    			 }
    
    
    	
    	return 0;
    }
    [code]
    Ultima modifica di raffaela_dalessandro il 21 nov 2019, 19:10, mod
  • Re: Problema con gli array e i cicli

    No ... era per il codice... hai corretto...

    Na spiega nuovamente il problema meglio... cosa succede e cosa ti aspetti?
  • Re: Problema con gli array e i cicli

    oregon ha scritto:


    No ... era per il codice... hai corretto...

    Na spiega nuovamente il problema meglio... cosa succede e cosa ti aspetti?
    succede questo: se inserisco riempimento 7 e inserisco 4 elementi e poi s, dovrebbe stamparmi solo quei 4 elementi, invece mi si impalla tutto e mi escono stampati 7 elementi ( i primi 4 inseriti e poi gli altri tre a caso)
  • Re: Problema con gli array e i cicli

    L'ultima for usa riempie come limite...
Devi accedere o registrarti per scrivere nel forum
5 risposte