Мне нужно найти способ отображения максимального и минимального числа в массиве, размер массива равен 100 и не будет превышать этого, и нет необходимости для проверки ввода. Программа будет продолжать запрашивать ввод до тех пор, пока не встретится 0, и он тоже будет добавлен в массив.Как найти наибольшее и наименьшее число в массиве в c
У меня все выяснено, кроме как отслеживать, что является самым большим и наименьшим значением. Я был бы признателен, если бы кто-то мог исправить мой код или показать мне. Другая проблема, с которой я столкнулась, заключается в том, чтобы завершить цикл и выполнить вычисления max/min в цикле while, когда вход равен 0.
/*
============================================================================
Name : test.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#define n 100
int main(void){
int numbers[n];
int i = 1;
int j;
int input;
int maxvalue;
int minvalue;
printf("Enter the next array element>");
input = scanf("%d", &numbers[100]);
while (input != 0){
numbers[i] = input;
i++;
printf("Enter the next array element, while loop>");
input = scanf("%d", &numbers[n]);
if (input == 0){
printf("Enter the next array element, if loop");
numbers[i] = 0;
for (j =2;j <= i; j++){
minvalue = numbers[1];
j++;
if (numbers[j] > minvalue){
maxvalue = numbers[j] ;
}
else{
minvalue = numbers[j] ;
}
}
}
}
printf("%f\t", maxvalue);
printf("%f\n", minvalue);
}
РЕДАКТОР: Я принял все ваши предложения и отредактировал свой код. Это мой код ниже. Однако это не то, что я ожидаю.
#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);
}
Это выход, я получаю! Может кто-то решить это для меня.
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
ОКОНЧАТЕЛЬНЫЙ РЕДАКТОР: Я РЕШЕН ЭТО НА МОЕМ СОБСТВЕННОСТИ. Я установил проверку min/max вне основного цикла WHILE, это позволило ввести вход 0 в массив.
#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);
}
В C, индекс массива начинается с 0 Вы могли бы использовать 1 без каких-либо ошибок, потому что используете его локально, чтобы вы просто пропустили первый элемент все время, но он будет возиться с каждым программистом на C. – tia
Попробуйте использовать прописные буквы для препроцессорных констант, таких как n, это показывает, что они отличаются от ваших переменных. – 2010-09-26 07:45:05
Пожалуйста, пожалуйста, укажите код когерентно – pmg