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.