Je dois trouver un moyen d'afficher le nombre Maximum et Minium dans un tableau, la taille du tableau est 100 et ne dépassera pas cela et il n'y a pas besoin pour la validation d'entrée. Le programme continuera à demander l'entrée jusqu'à ce que 0 soit rencontré et qu'il soit ajouté au tableau.Comment trouver le plus grand et le plus petit nombre dans un tableau en c
J'ai tout compris sauf comment garder la trace qui est la plus grande et la plus petite valeur. J'apprécierais que quelqu'un puisse corriger mon code ou me montrer. Un autre problème que j'ai est de terminer la boucle et de faire le calcul max/min dans la boucle while quand l'entrée est égale à 0.
EDIT: J'ai enlevé toutes vos suggestions et édité mon code. Ceci est mon code ci-dessous. Cependant, c'est la sortie n'est pas ce que je m'attends.
#include <stdio.h>
#include <stdlib.h>
#define N 100
int main(void){
int numbers[N];
int i = 0;
int j;
int input;
int maxvalue;
int minvalue;
printf("Enter the next array element>");
scanf("%d", &input);
while (input != 0){
numbers[i] = input;
i++;
if (input == 0){
i++;
numbers[i] = 0;
minvalue = numbers[0];
maxvalue = numbers[0];
for (j=0;j<=i-1;j++){
if (minvalue >= numbers[j]){
minvalue = numbers[j];
}else if (maxvalue <= numbers[j]){
maxvalue = numbers[j];
}
}
/* min = value of first array element
max = value of first array element
begin loop for each array element, index = 0 to (n-1)
--- if array element value is less than min, set min to this value
--- if array element value is more than max, set max to this value
increment index and repeat loop til last index is completed
average = sum/number of elements (n).
max and min will hold their correct values.*/
}
printf("Enter the next array element, while loop>");
scanf("%d", &input);
}
printf("%d\t", maxvalue);
printf("%d", minvalue);
}
Ceci est la sortie, j'obtiens! Quelqu'un peut-il résoudre cela pour moi?
Enter the next array element>1
Enter the next array element, while loop>2
Enter the next array element, while loop>3
Enter the next array element, while loop>0
12190144 l6Press [Enter] to close the terminal
FINAL EDIT: J'ai résolu cela sur mon propre. J'ai mis la vérification min/max en dehors de la boucle WHILE master, cela a permis d'entrer l'entrée de 0 dans le tableau.
#include <stdio.h>
#include <stdlib.h>
#define N 100
int main(void){
int numbers[N];
int i = 0;
int j;
int input;
int maxvalue =1;
int minvalue = 1;
printf("Enter the next array element>");
scanf("%d", &input);
minvalue = input;
maxvalue = input;
while (input != 0){
numbers[i] = input;
++i;
printf("Enter the next array element>");
scanf("%d", &input);
if (input == 0){
numbers[i] = 0;
++i;
}
}
for (j =0;j<i;j++){
if (numbers[j] >= maxvalue){
maxvalue = numbers[j];
}
if(numbers[j] < minvalue){
minvalue = numbers[j];
}
}
printf("%d\t", maxvalue);
printf("%d\n", minvalue);
}
En C, l'indice de tableau commence à 0 Vous pouvez utiliser 1 sans aucune erreur car vous l'utilisez localement, donc vous n'avez pas besoin de passer par-dessus le premier élément, mais ce sera un problème pour tous les programmeurs en C. – tia
Essayez d'utiliser des majuscules pour les constantes de préprocesseur comme n, cela montre qu'elles sont différentes de vos variables. –
S'il vous plaît, s'il vous plaît, indenter votre code de manière cohérente – pmg