Visual Studio 2012 “Erreur de syntaxe”

Je reçois les erreurs suivantes lorsque je tente de comstackr mon projet dans Visual Studio 2012:

1>------ Build started: Project: ConsoleApplication1, Configuration: Debug Win32 ------ 1> main.c 1>e:\main.c(28): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 1>c:\program files (x86)\microsoft visual studio 11.0\vc\include\stdio.h(290) : see declaration of 'scanf' 1>e:\main.c(30): error C2143: syntax error : missing ';' before 'type' 1>e:\main.c(31): error C2143: syntax error : missing ';' before 'type' 1>e:\main.c(33): error C2065: 'answerMin' : undeclared identifier 1>e:\main.c(33): error C2065: 'answerMax' : undeclared identifier 1>e:\main.c(35): error C2065: 'answerMax' : undeclared identifier 1>e:\main.c(36): error C2065: 'answerMin' : undeclared identifier ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

Voici le code dans main.c

 #include  #include  double a ; double b ; double ComputeMaximum( double, double ) ; double ComputeMinimum( double, double ) ; int main(void) { printf("\nPlease enter two numeric values for comparison\n") ; scanf("%d%d", &a, &b ); double answerMax = ComputeMaximum( a, b ) ; double answerMin = ComputeMinimum( a, b ) ; printf("Of %d and %d the minimum is %d and the maximum is %d\n", a, b, answerMin, answerMax ) ; printf("%d", answerMax ) ; printf("%d", answerMin ) ; system("pause"); return 0; } 

Voici le code pour ComputeMinimum.c

 double ComputeMinimum( double a, double b ) { double result = 0 ; ( a > b ) ? ( b = result ) : ( a = result ) ; return result ; } 

Voici le code pour ComputeMaximum.c

 double ComputeMaximum(double a, double b) { double result = 0 ; ( a > b ) ? ( a = result ) : ( b = result ) ; return result ; } 

 scanf("%d%d", &a, &b ); 

doit être

 scanf("%lf %lf", &a, &b); 

parce a et b sont doubles (avec un espace entre les valeurs).

pareil pour

 printf("Of %d and %d the minimum is %d and the maximum is %d\n", a, b, answerMin, answerMax ) ; 

changer %d en %f

Notez également que dans

 double ComputeMinimum( double a, double b ) { double result = 0 ; ( a > b ) ? ( b = result ) : ( a = result ) ; return result ; } 

result est toujours 0, changer à

 ( a > b ) ? ( result = b ) : ( result = a ) ; 

idem pour computeMaximum

Et bien sûr, vous devez inclure l’en-tête contenant ces fonctions dans main.c (le compilateur met en garde à ce sujet)

Lorsque vous utilisez C, vous devez déclarer une variable avant toute instruction ou appel de fonction. Exemple:

 int main(void) { double answerMax; double answerMin; ..... system("pause"); return 0; } 

A propos de la fonction obsolète. vous pouvez append _CRT_SECURE_NO_WARNING dans la définition de votre préprocesseur dans les propriétés du projet.