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

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

    salve ragazzi è il mio primo thread in questo forum, ho un problema con questo esercizio. "Dato un vettore di 10 numeri dire se è ordinato o disordinato". Premetto che ho studiato solo il linguaggio in C e non quello in C++. In breve se inserisco i numeri in successione 1,2,3,4,5,6,7,8,9,10 mi stampa 10 volte "il vettore è ordinato", se li inserisco non in ordine mi fa un controllo mano mano per esempio 1,3,2,4,5,6,8,7,10,11 mi stampa "il vettore è ordinato","il vettore è disordinato","il vettore è ordinato","il vettore è ordinato" e via via. Ecco come l'ho fatto io, cosa devo modificare? Vi ringrazio per la pazienza

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

    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
    {
    printf("il vettore e' disordinato");
    printf("\n");
    }
    }
    system("pause");
    }

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    C++
    codice:
    #include <iostream>
    #define N 10
    using namespace std;
    
    int main() {
    	int v[N];
    	int c;
    	bool ord;
    
    	for(c = 0; c < N;c++) {
    		cout << "inserisci un numero: ";
    		cin >> v[c];
    	}
    	
    	ord = true;
    	for(c=0;c < (N - 1);c++) {
    		if(!(v[c] <= v[c+1])) {
    			ord = false;
    			break;
    		}
    	}
    	
    	if(ord)
    		cout << "Il vettore è ordinato" << endl;
    	else
    		cout << "Il vettore è disordinato" << endl;
    
    	system("pause");
    }
    e C:
    codice:
    #include <stdio.h>
    #include <stdbool.h>
    #define N 10
    
    int main() {
    	int v[N];
    	int c;
    	bool ord;
    
    	for(c = 0; c < N;c++) {
    		printf("inserisci un numero: ");
    		scanf("%d",&v[c]);
    	}
    	
    	ord = true;
    	for(c=0;c < (N - 1);c++) {
    		if(!(v[c] <= v[c+1])) {
    			ord = false;
    			break;
    		}
    	}
    	
    	if(ord)
    		printf("Il vettore è ordinato\n");
    	else
    		printf("Il vettore è disordinato\n");
    
    	system("pause");
    }
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

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

    Originariamente inviato da valerio95
    salve ragazzi è il mio primo thread in questo forum, ho un problema con questo esercizio. "Dato un vettore di 10 numeri dire se è ordinato o disordinato". Premetto che ho studiato solo il linguaggio in C e non quello in C++. In breve se inserisco i numeri in successione 1,2,3,4,5,6,7,8,9,10 mi stampa 10 volte "il vettore è ordinato", se li inserisco non in ordine mi fa un controllo mano mano per esempio 1,3,2,4,5,6,8,7,10,11 mi stampa "il vettore è ordinato","il vettore è disordinato","il vettore è ordinato","il vettore è ordinato" e via via. Ecco come l'ho fatto io, cosa devo modificare? Vi ringrazio per la pazienza
    Rivedi quell'if... Non ha senso stampare il risultato ad ogni confronto: appena trovi un valore che rompe l'ordine attivi un flag ed esci dal ciclo. A fine ciclo, verifichi il valore di questo flag e stampi il messaggio di output.


    @Scara95: dandogli il codice bello pronto, senza un minimo di spiegazione non gli è di grande aiuto
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4

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

    Originariamente inviato da Alex'87
    Rivedi quell'if... Non ha senso stampare il risultato ad ogni confronto: appena trovi un valore che rompe l'ordine attivi un flag ed esci dal ciclo. A fine ciclo, verifichi il valore di questo flag e stampi il messaggio di output.


    @Scara95: dandogli il codice bello pronto, senza un minimo di spiegazione non gli è di grande aiuto
    @Alex87 grazie per il consiglio

  5. #5
    Originariamente inviato da Scara95
    C++
    codice:
    #include <iostream>
    #define N 10
    using namespace std;
    
    int main() {
    	int v[N];
    	int c;
    	bool ord;
    
    	for(c = 0; c < N;c++) {
    		cout << "inserisci un numero: ";
    		cin >> v[c];
    	}
    	
    	ord = true;
    	for(c=0;c < (N - 1);c++) {
    		if(!(v[c] <= v[c+1])) {
    			ord = false;
    			break;
    		}
    	}
    	
    	if(ord)
    		cout << "Il vettore è ordinato" << endl;
    	else
    		cout << "Il vettore è disordinato" << endl;
    
    	system("pause");
    }
    e C:
    codice:
    #include <stdio.h>
    #include <stdbool.h>
    #define N 10
    
    int main() {
    	int v[N];
    	int c;
    	bool ord;
    
    	for(c = 0; c < N;c++) {
    		printf("inserisci un numero: ");
    		scanf("%d",&v[c]);
    	}
    	
    	ord = true;
    	for(c=0;c < (N - 1);c++) {
    		if(!(v[c] <= v[c+1])) {
    			ord = false;
    			break;
    		}
    	}
    	
    	if(ord)
    		printf("Il vettore è ordinato\n");
    	else
    		printf("Il vettore è disordinato\n");
    
    	system("pause");
    }
    @Scara95 grazie per il codice , scusami per l'ignoranza ma potresti spiegarmi ord=false e if(ord) cosa significano? mentre ord è la variabile che poi devo stampare giusto?

  6. #6
    sapete spiegarmi inoltre che significa "dire se il vettore è simmetrico"

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da valerio95
    @Scara95 grazie per il codice , scusami per l'ignoranza ma potresti spiegarmi ord=false e if(ord) cosa significano?
    Originariamente inviato da Alex'87
    appena trovi un valore che rompe l'ordine attivi un flag ed esci dal ciclo. A fine ciclo, verifichi il valore di questo flag e stampi il messaggio di output.


    Originariamente inviato da valerio95
    mentre ord è la variabile che poi devo stampare giusto?
    No. E' il flag che ti dice se il vettore è ordinato o meno.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da valerio95
    sapete spiegarmi inoltre che significa "dire se il vettore è simmetrico"
    Penso sia una cosa del genere:

    "1 4 10 15 10 4 1" o "2 5 6 6 5 2"

    L'algoritmo è banale, basta che ragioni un attimo sull'esempio che ho fatto
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590

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

    Originariamente inviato da Alex'87
    @Scara95: dandogli il codice bello pronto, senza un minimo di spiegazione non gli è di grande aiuto
    Aveva detto che conosceva il C, quindi ho supposto che fosse in grado di interpretarlo, inoltre ero di fretta.
    In ogni caso, come già ha detto Alex'87 ord serve solo come variabile di flag.
    Nello spezzone di codice che ho postato:
    -supponi che il vettore sia ordinato ed imposti ord a true;
    -verifichi l'ordine degli elementi, se trovi due elementi non ordinati imposti ord a false e termini il ciclo;
    -controlli se ord è impostato a true o a false e prendi un'azione di conseguenza.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  10. #10
    Originariamente inviato da Alex'87
    Penso sia una cosa del genere:

    "1 4 10 15 10 4 1" o "2 5 6 6 5 2"

    L'algoritmo è banale, basta che ragioni un attimo sull'esempio che ho fatto
    ok grazie

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.