Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di NaTEn
    Registrato dal
    Jan 2009
    Messaggi
    18

    Help puntatori e funzioni

    Ciao a tutti,
    Svolgendo un esercizio, ho riscontrato dei problemi con i puntatori.
    Nell'esercizio devo passare due array di interi ad una funzione, la quale mi deve restituire un array di char.

    il prototipo della funzione è: (spero sia giusto)

    char **risultati(int *, int *);

    Il mio problema è che non riesco a capire come restituire l'array finale.
    Il programma che ho scritto è questo:

    codice:
    #include <stdio.h>
    #include <string.h>
    
    #define L 13
    
    char *risultati(int *, int *);
    
    int main(int argc, char *argv[]){
    	int in[L], out[L];
    	int i;
    	char *r;
    	
    	for(i = 0; i < L; i++){
    		printf("Casa: ");
    		scanf("%d", &in[i]);
    		printf("\nOspite: ");
    		scanf("%d", &out[i]);
    		printf("\n\n");
    	}
    
    	*r = *risultati(in, out);
    	
    	for(i = 0; i < L; i++)
    		printf("%c\n", *r);
    	
    	return 0;
    }
    	
    	
    	
    char *risultati(int in[L], int out[L]){
    	char res[L], **r;
    	int i;
    	
    	*r = &res[0];
    	
    	for(i = 0; i < L; i++){
    		if(in[i] > out[i])
    			strcpy("1", *res[i]);
    		else
    			if(in[i] == out[i])
    				strcpy("X", *res[i]);
    			else
    				if(in[i] < out[i])
    					strcpy("2", *res[i]);
    	}
    	
    	return **r;
    }

    Grazie in anticipo per gli aiuti

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

    Moderazione

    Originariamente inviato da NaTEn
    Svolgendo un esercizio, ho riscontrato dei problemi con i puntatori.
    Il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho corretto io, ma tienilo a mente per il futuro.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di NaTEn
    Registrato dal
    Jan 2009
    Messaggi
    18

    Re: Moderazione

    Originariamente inviato da alka
    Il linguaggio va indicato anche nel titolo, come da Regolamento.

    Qui l'ho corretto io, ma tienilo a mente per il futuro.

    Ciao!
    Ops..Mi sono dimenticato..scusa e grazie per la correzione



    ciao..

  4. #4
    Utente di HTML.it L'avatar di NaTEn
    Registrato dal
    Jan 2009
    Messaggi
    18

    Risolto

    Problema risolto da solo...

    Grazie comunque

    NaTEn

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,333
    Originariamente inviato da NaTEn
    Problema risolto da solo...
    Grazie comunque
    NaTEn
    In genere, lo spirito del forum suggerisce di riportare la soluzione in modo che possa essere utile a tutti.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  6. #6
    Utente di HTML.it L'avatar di NaTEn
    Registrato dal
    Jan 2009
    Messaggi
    18

    Soluzione

    Originariamente inviato da alka
    In genere, lo spirito del forum suggerisce di riportare la soluzione in modo che possa essere utile a tutti.

    Ciao!
    Ci avevo pensato, ma siccome era un problema diciamo "particolare" e non generico e inoltre nessuno si era dimostrato interessato, non sapevo se sarebbe potuta essere utile...
    Comunque se dici che potrebbe servire la riporto più che volentieri

    codice:
    #include <stdio.h>
    #include <string.h>
    
    #define L 13
    
    void risultati(int *, int *, char *);
    
    int main(int argc, char *argv[]){
    	int in[L], out[L];
    	int i;
    	char r[L+1];
    	
    	for(i = 0; i < L; i++){
    		printf("Casa: ");
    		scanf("%d", &in[i]);
    		printf("Ospite: ");
    		scanf("%d", &out[i]);
    		printf("\n");
    	}
    	
    	risultati(in, out, r);
    	
    	for(i = 0; i < L; i++)
    		printf("%c\n", r[i]);
    	
    	return 0;
    }
    	
    	
    	
    void risultati(int *in, int *out, char *r){
    	int i;
    	
    	for(i = 0; i < L; in++, r++, out++, i++){
    		if(*in > *out)
    			*r = '1';
    		else
    			if(*in == *out)
    				*r = 'X';
    			else
    				if(*in < *out)
    					*r = '2';
    	}
    	return;
    }

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

    Re: Soluzione

    Originariamente inviato da NaTEn
    Ci avevo pensato, ma siccome era un problema diciamo "particolare" e non generico e inoltre nessuno si era dimostrato interessato, non sapevo se sarebbe potuta essere utile...
    Comunque se dici che potrebbe servire la riporto più che volentieri
    A volte, anche se non sembra, l'errore più banale può essere davvero "illuminante" per qualcuno che si trova esattamente nella stessa situazione.

    Ottimo lavoro!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  8. #8
    Utente di HTML.it L'avatar di NaTEn
    Registrato dal
    Jan 2009
    Messaggi
    18
    Grazie...Mi fa sempre piacere aiutare quando è possibile...


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.