Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    11

    Linguaggio c-cambio di variabili tramite puntatori

    Salve a tutti, non riesco a capire cosa sbaglio nello scrivere il codice di questo programma. A me sembra essere tutto corretto, eppure quando vado per compilare, Codeblocks mi dice "conflicting types for ordina". Qualcuno potrebbe aiutarmi???
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    
    
    int main() {
        int a, b;
    
    
        printf ("Inserisci due numeri da tastiera: ");
        scanf("%d %d", &a,&b);
        ordina(&a,&b);
    
    
        return 0;
    }
    
    
    void ordina (int *x, int *y) {
        int temp;
        if (*x > *y) {
            temp = *x;
            *x = *y;
            *y = temp;
        }
    }
    Ultima modifica di MItaly; 16-12-2015 a 00:49 Motivo: Tag CODE, indentazione

  2. #2
    Manca il prototipo della funzione in testa a tutto. Se non lo specifichi il compilatore incontra la chiamata a ordina, suppone che sia una funzione che prende due int e quando incontra la definizione con gli int * si arrabbia. In generale, ricordati sempre di specificare in testa al file o in un header i prototipi delle funzioni che poi definisci nel file .cpp.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    11
    Il prototipo della funzione dovrebbe essere:
    void ordina(int *, int *);
    Giusto?
    Però se scrivo così, mi dà un errore

  4. #4
    Dire "dà errore" senza specificare quale né mostrando come hai modificato il codice non aiuta molto...
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    11
    Mi correggo: adesso, una volta inserito il prototipo della funzione, non mi dà alcun errore e dice che posso compilare far partire il programma, se non fosse che quando clicco su run(dopo aver già cliccato su build con esito ottimale), mi si apre la schermata nera sulla quale dovrebbe uscire il programma ma resta nera e non compare alcuna scritta

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non appare

    "Inserisci due numeri da tastiera:"

    ?

    Usi Linux?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    11
    No, non appare. E non uso Linux, ma Windows

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 © 2025 vBulletin Solutions, Inc. All rights reserved.