Intero di ritorno che non ritorna xD

di il
3 risposte

Intero di ritorno che non ritorna xD

Vorrei sapere perchè quando vado a stampare un intero "score" non mi ritorna nulla dalla funzione
#include <stdlib.h>
#include <stdio.h>
#define A =1;

struct domanda1{
char a[30];
char b[30];
char c[30];
char d[30];
};

typedef struct domanda1 prima;


int domanda_gen(int scelta , int caso , char *a, char *b, char *c, char *d);
int risposta(int caso,int i);

int main (void) {

	int score=0;

	prima dom;
	int numero;
		printf("esecuzione random");
		scanf("%d",& numero);
	while(numero!=0){
		printf("in num");
		scanf("%d",& numero);
		switch (numero){
		case 1 :
		strcpy (dom.a,"Roma");
		strcpy (dom.b,"Milano");
		strcpy (dom.c,"Palermo");
		strcpy (dom.d,"Torino");
		break;
		case 2: 
		strcpy (dom.a,"Totti");
		strcpy (dom.b,"Del Piero");
		strcpy (dom.c,"Inzaghi");
		strcpy (dom.d,"Zidane");
		break;
		}

		int num;
		domanda_gen(num,numero,dom.a,dom.b,dom.c,dom.d);	
		risposta (numero,score);
		printf("\n\n risultato :%d",score);
	}
}

int domanda_gen(int scelta , int caso , char *a, char *b, char *c, char *d){
	
	
	switch (caso){
		case 1 : 
		printf("capitale italia %s %s %s %s\n", a ,b,c,d);
		break;
		case 2:
		printf("giocatore straniero %s %s %s %s\n", a ,b,c,d);
		break;
	}
}
int risposta(int caso,int i){
		int risultato;
		;
	switch (caso){
		case 1:
		scanf("%d",&risultato);
		if (risultato==1){
			printf("risposta esatta\n");
			 i++;
			return i;
		
		}
			else
			printf("risposta esatta era Roma\n");
			 
		break;
		case 2:
		scanf("%d",&risultato);
		if (risultato==4){
			printf("risposta esatta\n");
			i++;
			return i;
		}
			else
			printf("risposta esatta era Zidane\n");
			
		break;
	}
}

3 Risposte

  • Re: Intero di ritorno che non ritorna xD

    risposta (numero,score);
    risposta(...) ritarna qualcosa ma il valore di ritorno non viene assegnato
    int valore_ritorno = risposta (numero,score);
    così la variabile chiamata valore_ritorno avrà il valore restituito dalla funzione risposta
  • Re: Intero di ritorno che non ritorna xD

    Ma se usassi un
    Return 1
    ?????
  • Re: Intero di ritorno che non ritorna xD

    La funzione in questo caso ritornerebbe 1.

    Ma se non assegni questo valore a una variabie non potrai farci niente

    Per assegnare a una variabile il val di ritorno di una funzione:
    variabile = funzione (parametri)
Devi accedere o registrarti per scrivere nel forum
3 risposte