Uscire prima da un ciclo for

di il
5 risposte

Uscire prima da un ciclo for

Buonasera, sto scrivendo un programma in C il cui obiettivo è, dati dei numeri inseriti dall'utente e memorizzati in un vettore, stabilire se la sequenza di numeri è strettamente crescente.
Al momento sono arrivata qui.
#include<stdio.h>
#include<stdlib.h>
#define MAX 30

int main(){
int v[MAX];
int N;
int i;

printf("Quanti numeri vuoi insserire?");
scanf("%d", &N);

for(i=0; i>N; i++)
	{
	printf("Elemento %d: \n", i+1);
	scanf("%d", &v[i]);
	}


}

ora volevo proseguire facendo un ciclo for in cui verifico se per ogni i, v<v[i+1]+, e nel caso non lo sia creo un contatore e lo incremento di 1 ogni volta, e alla fine fare un if/else, se il contatore è =0 la sequenza è strettamente crescente, altrimenti non lo è.


so che esiste breack, ma non saprei come utilizzarla e durante le lezioni di tutorato il ragazzo che ci spiegava ha detto che è troppo brutale e che non andrebbe usata.
il mio metodo andrebbe bene?

5 Risposte

  • Re: Uscire prima da un ciclo for

    Perché non usi un ciclo do...while ?
  • Re: Uscire prima da un ciclo for

    Cioè?
    ho scritto così ma mi sa che non è giusto:
    do
    	{
    	if(v[i] >= v[i+1])
    		cont++;	
    	}
    while(v[i] < v[i+1]);
    
    if(cont==0)
    	printf("Ok");
    else
    	printf("No");
  • Re: Uscire prima da un ciclo for

    Devi incrementare i all'interno del ciclo, altrimenti non va avanti. Il controllo lo fa la while, non devi usare if all'interno.
  • Re: Uscire prima da un ciclo for

    Ho corretto un po' di cose e ho usato un flag, credo di aver capito che per flag si intenda la variabile che io ho chiamato crescente:
    #include<stdio.h>
    #include<stdlib.h>
    
    
    int main(){
    const int MAX=30;
    int v[MAX];
    int N;
    int i;
    int crescente=1;
    
    do{
    	printf("Quanti numeri saranno inseriti?\n");
    	scanf("%d", &N);
    	if(N<=0 || N>30)
    		printf("Errore\n");
    }while(N<=0 || N>30);
    
    for(i=0; i<N; i++)
    	{
    	printf("Elemento %d: ", i+1);
    	scanf("%d", &v[i]);
    	}
    	
    for(i=1; i<N && crescente==1; i++)
    	{
    		if(v[i-1] >= v[i])
    			crescente=0;
    	}
    
    
    
    
    if(crescente==1)
    	printf("Sequenza strettamente crescente");
    	
    else
    	printf("sequenza non strettamente crescente");
    
    return 0;
    }
  • Re: Uscire prima da un ciclo for

    Se vuoi un consiglio, cambia tutore.
    Il break si usa, eccome! Provaci!
Devi accedere o registrarti per scrivere nel forum
5 risposte