Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1

    [C] Dato un vettore di 10 numeri dire se è ordinato o disordinato

    salve a tutti ho un problema in else if quando devo stampare i disordinati, cosa devo metterci all'interno?

    codice:
    #include<stdio.h>
    #include<iostream>
    #define N 10
    int main()
    {
        int v[N];
        int c=0;
        
        for(c=0;c<N;c++)
        {
          printf("inserisci un numero");
          printf("\n");
          scanf("%d",&v[c]);
        }
        for(c=0;c<N;c++)
        {
          if(v[c]<v[c+1])
          {
            printf("il vettore e' ordinato");
            printf("\n");
          } 
          else if()
          printf("il vettore e' disordinato");
          printf("\n");
         }
         system("pause");
    }

  2. #2

    Re: [C] Dato un vettore di 10 numeri dire se è ordinato o disordinato

    Originariamente inviato da valerio95
    salve a tutti ho un problema in else if quando devo stampare i disordinati, cosa devo metterci all'interno?

    #include<stdio.h>
    #include<iostream>
    #define N 10
    int main()
    {
    int v[N];
    int c=0;

    for(c=0;c<N;c++)
    {
    printf("inserisci un numero");
    printf("\n");
    scanf("%d",&v[c]);
    }
    for(c=0;c<N;c++)
    {
    if(v[c]<v[c+1])
    {
    printf("il vettore e' ordinato");
    printf("\n");
    }
    else if()
    printf("il vettore e' disordinato");
    printf("\n");
    }
    system("pause");
    }
    possibilmente senza flag perchè non me li hanno fatti studiare

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Perchè vuoi usare else if? Se non è ordinato sarà disordinato, un else è sufficiente.

    Comunque se vuoi imparare ti consiglio di studiare per conto tuo, non aspettare che il prof ti spieghi come utilizzare una variabile che faccia da flag.

    PS: Il codice he hai scritto probabilmente provocherà un crash (su Windows). Quando C sarà uguale ad N-1, ovvero l'ultimo elemento dell'array, tu accederai a c+1, una posizione che non esiste.

  4. #4

    Moderazione

    Tip: per evitare che sul forum il codice perda l'indentazione racchiudilo nei tag [code] ... [/code]; ora ho corretto io (qui e nell'altro thread).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Originariamente inviato da Patrick Jane
    Perchè vuoi usare else if? Se non è ordinato sarà disordinato, un else è sufficiente.

    Comunque se vuoi imparare ti consiglio di studiare per conto tuo, non aspettare che il prof ti spieghi come utilizzare una variabile che faccia da flag.

    PS: Il codice he hai scritto probabilmente provocherà un crash (su Windows). Quando C sarà uguale ad N-1, ovvero l'ultimo elemento dell'array, tu accederai a c+1, una posizione che non esiste.
    il problema è che mettendo solo else da solo se metto dei numeri a casaccio come 1 2 1 4 3 2 per esempio mi controlla tutto passo passo cioè mi stamperebbe ordinato ordinato disordinato etc... fa un controllo passo passo invece di stampare una sola volta se è ordinato o disordinato, questo perchè li ho stampati tutti all'interno del for, ma non trovo altra soluzione

  6. #6
    Anche senza ricorrere a flag è piuttosto semplice:
    codice:
        for(c=1;c<N;c++)
        {
            if(v[c-1]>v[c])
                break;
        }
        if(c==N)
            puts("Il vettore è ordinato.");
        else
            puts("Il vettore non è ordinato.");
    A te lo scoprire come funziona.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    non mi ha crashato, nel caso dei numeri ordinati se metto 1 2 3 4 5 6 7 8 9 10 mi stampa 10 volte ordinato perchè ho stampato all'interno del for e questo è il problema con l'else perchè se metto numeri sparsi mi stampa 10 volte come sono a secondo del caso es. 5 6 2 ordinato ordinato disordinato etc...

  8. #8
    Originariamente inviato da MItaly
    Anche senza ricorrere a flag è piuttosto semplice:
    codice:
        for(c=1;c<N;c++)
        {
            if(v[c-1]>v[c])
                break;
        }
        if(c==N)
            puts("Il vettore è ordinato.");
        else
            puts("Il vettore non è ordinato.");
    A te lo scoprire come funziona.
    grazie però mi da sempre errore in else

  9. #9
    a che serve break?

  10. #10
    Originariamente inviato da valerio95
    grazie però mi da sempre errore in else
    Che errore?
    a che serve break?
    Ad uscire dal ciclo.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.