Compter les bonnes reponses

Fermé
miissn Messages postés 1 Date d'inscription samedi 3 octobre 2015 Statut Membre Dernière intervention 3 octobre 2015 - 3 oct. 2015 à 22:17
KikiAmboara Messages postés 21 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 27 janvier 2016 - 6 oct. 2015 à 09:49
bonjour tout le monde je suis très nouvelle sur ce site et j apprends la progammation en c (1ere année a l université) donc ceci est ma premiere question.
au fait j'ai un exercices dans lequel je dois créer un programme qui pose des questions et afficher "response correcte, bravo!" si la reponse est vrai (ah! quelle surprise!) et "reponse incorrecte" si la reponse est fausse.
mon probleme est qu a la fin je dois afficher le nombre de reponse correcte et je ne sais pas du tout mais PAS DU TOUT comment le faire.
je vous serai infiniment reconnaiisants si vous pouvez me guidez

1 réponse

KikiAmboara Messages postés 21 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 27 janvier 2016
6 oct. 2015 à 09:49
Salut,
Je t'envoie ici le code en entier. Normallement ce code doit fonctionner mais si tu as des problemes, previens moi.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char**allouerChar2d( int i ) ;
char*allouerChar1d( int i ) ;
char* getQuestion( int i ) ;
char* getAnswer( int i ) ;
void askQuestion( int i ) ;
void setReply( char**add , int i ) ;
int checkReply( char** add ) ;

int main( void )
{
	char* question ;
	char** reply ;
	reply = allouerChar2d( 10 ) ;
	for( int i = 0 ; i < 10 ; i++ )
	{
		question = getQuestion( i ) ;
		printf( "%s\n" , question ) ;
		setReply( reply , i ) ;
	}
	int note = checkReply( reply ) ;
	printf( "Vous avez %i bonne(s) reponse(s)" , note ) ; 
	return 0 ;
}

char*allouerChar1d( int i )
{
	char* ret ;
	ret = malloc( i ) ;
	return ret ;
}
char**allouerChar2d( int i )
{
	char** ret ;
	ret = malloc( sizeof( char* )*i ) ;
	for( int a = 0 ; a < i ; a++ )
	{
		ret[a] = allouerChar1d( 50 ) ;
	}
	return ret ;
}

char* getQuestion( int i )
{
	char** question ;
	int nb = 10 ;
	question = allouerChar2d( nb ) ;
	strcpy( question[0] , "Quelle est la capitale de France?" ) ;
	strcpy( question[1] , "Quelle est la capitale de Russie?" ) ;
	strcpy( question[2] , "Quelle est la capitale de Canada?" ) ;
	strcpy( question[3] , "Quelle est la capitale de Madagascar?" ) ;
	strcpy( question[4] , "Quelle est la capitale du Japon?" ) ;
	strcpy( question[5] , "Quelle est la capitale du Pakistan?" ) ;
	strcpy( question[6] , "Quelle est la capitale du Bresil?" ) ;
	strcpy( question[7] , "Quelle est la capitale du Perou?" ) ;
	strcpy( question[8] , "Quelle est la capitale de la Grece?" ) ;
	strcpy( question[9] , "Quelle est la capitale de l'Egypte?" ) ;
	return question[i] ;
}

char* getAnswer( int i )
{
	char** answer ;
	int nb = 10 ;
	answer = allouerChar2d( nb ) ;
	strcpy( answer[0] , "Paris" ) ;
	strcpy( answer[1] , "Moscou" ) ;
	strcpy( answer[2] , "Quebec" ) ;
	strcpy( answer[3] , "Antananarivo" ) ;
	strcpy( answer[4] , "Tokyo" ) ;
	strcpy( answer[5] , "Islamabad" ) ;
	strcpy( answer[6] , "Brasilia" ) ;
	strcpy( answer[7] , "Lima" ) ;
	strcpy( answer[8] , "Athenes" ) ;
	strcpy( answer[9] , "Le Caire" ) ;
	return answer[i] ;
}

void askQuestion( int i )
{
	printf( getQuestion( i ) ) ;
}

void setReply( char** add , int i )
{
	fgets( add[i] , sizeof( add ) , stdin ) ;
}

int checkReply( char** add )
{
	int c = 0 ;
	for( int i = 0 ; i < 10 ; i++ )
	{
		if( strcmp( getAnswer(i) , add[i] ) == 0 )
		{
			c++ ;
		}
	}
	return c ;
}
0