2010-08-24 6 views
0

i a écrit le code, mais je n'obtenir la valeur max comment trouver la valeur maxtrouver min et max

#include <stdio.h> 
int main(void) 
{ 
     double temp[0]; 
     float max,min; 
     float i; 
     short c,j,k; 
     float sum=0; 
     float nu[c]; 

     printf("Number of values :"); 
     scanf("%f",&i); 

     for (c=1;i>=c;c++) 
     { 
      printf("values="); 
      scanf("%f",&nu[c]); 

      nu[c]=temp[0]; 

      for (j = 0; i>=j; j++) 
      { 
      if (temp[0]> nu[c]) 
      { 
      //  nu[c]=temp[0]; 
        max = temp[0]; 

      } 
     } 
     sum = sum + nu[c]; 
     } 
     printf("sum = %f \n",sum); 
     printf("maximum value = %f\n",max); 
} 
+0

double possible [trouver somme, min, max avec tableau] (http://stackoverflow.com/questions/3547633/finding-sum-min-max-with-array) (du même auteur aussi). – paxdiablo

Répondre

2

Si vous exécutez votre compilateur avec un -Wall (comme vous devriez toujours faire), vous devriez avoir vu les problèmes:

gcc -Wall -o foo foo.c 
foo.c: In function 'main': 
foo.c:35:14: warning: unused variable 'k' 
foo.c:33:14: warning: unused variable 'min' 
foo.c:62:1: warning: control reaches end of non-void function 
foo.c:37:4: warning: 'c' is used uninitialized in this function 

Voici le code source d'un programme qui fonctionne:

#include <stdio.h> 

int main(void) 
{ 
    float max = 0; // hypothesis : numbers keyed by the users are > 0 
    float min = 0; // hypothesis : numbers keyed by the users are > 0 
    int i, c; 
    float sum = 0; 
    float nu[100]; // hypothesis : no more than 100 numbers keyed by user 
        // hypothesis : float type is enough to store numbers keyed by user 
    printf("Number of values :"); 
    scanf("%d",&i); 

    for (c = 0; c < i; c++) 
    { 
     printf("values="); 
     scanf("%f",&(nu[c])); 

     if (nu[c] > max) { 
      max = nu[c]; 
     } 

     if (min == 0) { 
      min = nu[c]; 
     } else if(nu[c] < min) { 
      min = nu[c]; 
     } 

     sum = sum + nu[c]; 
    } 
    printf("sum = %f \n",sum); 
    printf("maximum value = %f \n", max); 
    printf("minimum value = %f \n", min); 

    return 0; 
} 
+0

merci j'ai eu la réponse pour la valeur maximale mais je ne reçois pas de réponse pour la valeur minimum –

+0

J'ai mis à jour le code source pour calculer la valeur min et corriger l'itération (c devrait commencer à 0 car les tableaux en C commence toujours à 0) –

+0

la réponse –

0

retirer la température (ne peut pas voir le point de celui-ci)

jeu max à une valeur initiale (par exemple, premier élément du tableau)

changer instruction if:

if (nu[c]> max) 
      { 
        max = nu[c]; 

      } 
0

Cela peut ne pas vous résoudre r question mais nu[c] semble mauvais attribué à moi depuis c la valeur est indéfinie

1

Vous avez besoin d'une seule boucle for et non imbriquée pour la boucle.

  1. Demandez l'aide de la première boucle
  2. Attribuer premier élément du tableau d'entrée à la variable, appelez ce max
  3. Comparer chaque élément du tableau en utilisant une boucle à nouveau
  4. Si vous obtenez une valeur supérieure à max puis changez max à cette valeur en utilisant le code ci-dessous

    si (max < a [i]) max = a [i];

À la fin de ces étapes, vous pouvez obtenir la valeur maximale. Essayez de mettre ces étapes dans un code C et ça devrait aller. Il y a quelques problèmes avec le code que vous avez écrit. J'ai écrit un petit extrait pour que vous obteniez des entrées pour le nombre d'éléments et les stockiez dans votre tableau pour les flottants.

int number_of_elements; 
printf("Enter the number of elements:\n"); 
scanf("%d", &number_of_elements); 
for(i=0;i<number_of_elements;i++) 
scanf("%f",&a[i]); 
1

Voici le code avec quelques conseils utiles:

#include <stdio.h> 
int main(void) 
{ 
     double temp[0]; 
     float max,min; 
     float i; 
     short c,j,k;      // k isn't used anywhere. 
     float sum=0; 
     float nu[c];      // c isn't set at this point so the 
             // runtime couldn't create an 
             // array anyway. 

     printf("Number of values :"); 
     scanf("%f",&i); 

     for (c=1;i>=c;c++) 
     { 
      printf("values="); 
      scanf("%f",&nu[c]); 
             // You should set min/max to nu[c] 
             // if c is 1 regardless. 
      nu[c]=temp[0];     // Why are you scanning into nu[c] 
             // then immediately overwriting? 

      for (j = 0; i>=j; j++)   // Why figure out the max *every* 
      {        // time you enter a value? 
      if (temp[0]> nu[c]) 
      { 
      //  nu[c]=temp[0]; 
        max = temp[0]; 

      } 
     } 
     sum = sum + nu[c]; 
     } 
     printf("sum = %f \n",sum); 
     printf("maximum value = %f\n",max); 
} 

Je vous propose aussi de revenir à my original answer et créer votre code de cela. C'est vraiment une façon beaucoup plus propre de le faire que d'essayer de jouer avec des tableaux. Permettez-moi de souligner que: si vous utilisez un tableau, vous le faites à la dure!

1

Ou cette

#include <stdio.h> 

int main(void) 

{ 
float temp; 

int val,i,j,k; 

double sum = 0; 

double number[val]; 

printf("Enter the number of values: "); 

scanf("%d", &val); 

double number[val]; 

for(i=1; i <= val ;i++) 
{ 
    printf("enter a value: "); 

    scanf("%lf", &number[i]); 

    sum = sum + number[i]; 

} 

for(i=1;i<=val;i++) 

     { 

    for(j=i+1;j<=val;j++) 

    { 

    if(number[i] > number[j]) 

    { 

    temp=number[i]; 

    number[i]=number[j]; 

    number[j]=temp; 

    } 

    } 

} 

printf("Sum = %.lf\n", sum); 

printf ("Maximum element: %f\n",number[val]); 

printf ("Minimum element: %lf\n", number[1]); 

}