2015-03-14 1 views
-1

Mon programme me donne deux valeurs minimales et aucune valeur maximale. Mon programme est censé imprimer valeur maximale si opcode est 1 et la valeur min si opcode est 0. Aide s'il vous plaîtValeur maximale et minimale dans le tableau

#include <stdio.h> 

int minmax(int array[], int array_size, int opcode); 

int main(void) 
{ 
    int array[]= {99,4,95,2,98}; //array size 
    int array_size = 5; 
    int i; 
    int opcode; 
    array_size = 5; 
    for (i = 0; i < array_size; i++) 
    { 
     printf("array[%d] = %d\n", i , array[i]); 
    } 
    printf("Enter an opcode 0 or 1: "); 
    scanf("%d", &opcode); 
    minmax(array, array_size, opcode); 
} 

int minmax(int array[], int array_size, int opcode) 
{ 
    int i; 
    int max = array[0]; 
    int min = array[0]; 
    for (i = 0; i < array_size; i++) 
    { 
     if (opcode == 1 && array[i] > max) 
     { 
      max = array[i]; 
      printf("The max value is: %d\n", max); 
     } 
     else if (opcode == 0 && array[i] < min) 
     { 
      min = array[i]; 
      printf("The min value is: %d\n", min); 
     } 
    } 
    return 0; 
} 

Répondre

1

Il n'imprime pas le maximum parce que le premier élément lui-même est le maximum.

C'est,

if (opcode == 1 && array[i] > max) 
{ 
max = array[i]; 
printf("The max value is: %d\n", max); 
} 

jamais dans ce exécute le code.

Le remède à afficher le minimum ou le maximum à la fin de la fonction minmax().

Votre code devrait ressembler à:

int minmax(int array[], int array_size, int opcode) 
{ 
int i; 
int max = array[0]; 
int min = array[0]; 
for (i = 0; i < array_size; i++) 
{ 
if (opcode == 1 && array[i] > max) 
{ 
max = array[i]; 
printf("The max value is: %d\n", max); 
} 
else if (opcode == 0 && array[i] < min) 
{ 
min = array[i]; 
printf("The min value is: %d\n", min); 
} 
} 
//The below code prints the final max/min (as determined by opcode) 
if (opcode == 1) printf("The final maximum is %d\n",max); 
else printf("The final minimum is %d\n",min); 
return 0; 
} 
+0

Merci beaucoup !! –

+0

@AdarshMangina Si cela a aidé, s'il vous plaît accepter la réponse. Il suffit de cliquer sur la coche ci-dessous la réponse downvote upvote. Merci. – shauryachats