Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    5

    Aiutooooo

    raga sto lavorando ad un programma ideato per dungeon and dragons...arrivato ad un certo punto voglio ordinare i valori inseriti dall'utente in ordine decrescente.... ekko una copia del mio programma...
    #include "stdafx.h"
    #include <iostream>
    #include <stdlib.h>
    using namespace std;

    int main() {
    cout <<"####################################\n";
    cout <<"#....Calcola Iniziativa per D&D....#\n";
    cout <<"####################################\n\n\n";
    int array[100];

    int i, u = 1;

    cout << "Giocatori partecipanti al combattimento?" << endl;
    cin >> i;
    if (i>100) {
    cout <<"Troppi player....";
    system ("pause");
    return 1;
    }


    while(u <= i){
    cout << "Dammi l'iniziativa del giocatore #" << u << endl;
    cin >> array[u];
    u++;
    }
    u = 1;

    while(u <= i){
    cout << "giocatore " << u << "\tIniziativa = " << array[u] << endl;
    u++;
    }

    system("PAUSE");
    return 0;
    }

    aspetto una vostra risposta

  2. #2
    Ma qual'è il problema? :master: In ogni caso nella libreria standard C è già inclusa una routine di ordinamento (qsort()).
    P.S.: il titolo... :rollo:
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    5
    while(u <= i){
    cout << "Dammi l'iniziativa del giocatore #" << u << endl;
    cin >> array[u];
    u++;
    }
    u = 1;

    dopo avere inserito i valori kiedevo se qualcuno sa indicarmi come metterli in ordine decrescente...

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Ma cos'e' l' "iniziativa del giocatore"? VVoVe:

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    5
    x ki non conosce dungeon and dragon è inutile spiegare....^^
    fate finta ke al posto di iniziativa ci sia scritto : "Inserire valore del primo giocatore";

  6. #6
    codice:
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    int compare(const void* a, const void* b)
    {
        return (*(int*)b - *(int*)a);
    }
    
    int main() 
    {
        int array[100];
        cout <<"####################################\n";
        cout <<"#....Calcola Iniziativa per D&D....#\n";
        cout <<"####################################\n\n\n";
        
        int i, u = 0;
    
        cout << "Giocatori partecipanti al combattimento?" << endl;
        cin >> i;
        if (i>100) {
           cout <<"Troppi player....\n";
           system ("pause");
           return 1;
        }
    
        while(u < i){
                cout << "Dammi l'iniziativa del giocatore #" << u+1 << endl;
                cin >> array[u];
                u++;
        }
        u = 0;
        qsort(array, i,sizeof(int),compare);
        while(u < i){
                cout << "giocatore " << u+1 << "\tIniziativa = " << array[u] << endl;
                u++;
        }
        system("PAUSE");
        return 0;
    }
    Ref sulla funzione qsort

    Comunque attenzione! Così come è strutturato adesso il programma ha un problema: ordinando l'array perdi l'assocazione giocatore-iniziativa:
    Esempio con 3 giocatori:

    giocatore 0 ====> 5 iniziativa
    giocatore 1 ====> 60 iniziativa
    giocatore 2 ====> 3 iniziativa

    ora ordinamo l'array dell' iniziativa e ottneiamo

    posizione 0 ====> 60
    posizione 1 ====> 5
    posizione 2 ====> 3

    ora stampando i valori come proposto dal tuo codice si otterrebbe:

    giocatore 0 ====> 60 iniziativa
    giocatore 1 ====> 5 iniziativa
    giocatore 2 ====> 3 iniziativa

    quindi attenzione devi fare in modo che anche "l'ordine dei giocatori" si riadatti alla nuova disposizione degli elementi dell'array

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    5
    grazie per la dritta..come si può capire sono un programmatore principiante....qualcuno sa aiutarmi a correggere il piccolo bug riportato?

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    come' che alka non e' ancora intervenuto??
    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
    Registrato dal
    Oct 2006
    Messaggi
    5
    Scusate x il titolo...sono nuovo di questo forum. non succederà +. Ancora sentite scuse.
    SE cè un modo per cambiare titolo provvederò appena possibile

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301

    Moderazione

    Originariamente inviato da Alex'87
    come' che alka non e' ancora intervenuto??
    Non vivo all'interno del forum, ho anche io una mia vita privata...

    Ma è bello vedere che non ci si può assentare un attimo.

    epico, correggo il titolo solamente nel rispetto di coloro che hanno già speso tempo libero per rispondere alla tua domanda, ma usa titoli conformi al Regolamento in futuro.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.