Определите, на сколько рост самого высокого из них превышает рост самого низкого - C (СИ)
Формулировка задачи:
Привет! Программа компилируется, но вместо ответа выводит 0.
Задание:
логически все вроде как верно, в чем тогда ошибка?
Спасибо за внимание!
Введите с клавиатуры рост каждого студента из вашей группы. Определите, на сколько рост самого высокого из них превышает рост самого низкого?
#include <stdio.h>
void main ()
{
int n, i, min, max, raznica, k;
i=2;
min=0;
max=0;
raznica=0;
puts("Vvedite kolichestvo stydentov ");
scanf("%d", &n);
puts("Vvedite rost studenta ");
scanf("%d", &k);
k=min=max;
k=0;
while(i<=n)
{ puts("Vvedite rost studenta ");
scanf("%d", &k);
if(k<min)
{k=min;}
else
if(k>max)
{k=max;}
i++;
k=0;
}
raznica=max-min;
printf("Raznica %d ", raznica);
puts("");
}Решение задачи: «Определите, на сколько рост самого высокого из них превышает рост самого низкого»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
void main ()
{
int n, i, min, max, raznica, k;
i=2;
min=0;
max=0;
//raznica=0;
puts("Vvedite kolichestvo stydentov ");
scanf("%d", &n);
puts("Vvedite rost studenta ");
scanf("%d", &k);
min=k;
max=k;
//k=0;
while(i<=n)
{ puts("Vvedite rost studenta ");
scanf("%d", &k);
if(k<min){
min=k;
}
else if(k>max){
max=k;
}
i++;
k=0;
}
raznica=max-min;
printf("Raznica %d ", raznica);
puts("");
getch();
}
Объяснение кода листинга программы
В этом коде выполняются следующие действия:
- Объявляются переменные:
n- количество студентов;i- счётчик студентов;min- рост самого низкого студента;max- рост самого высокого студента;raznica- разница в росте;k- текущий рост студента.
- Ввод количества студентов и сохранение этого значения в переменной
n. - Ввод роста первого студента и сохранение этого значения в переменной
k. Значениеminиmaxустанавливаются равнымиk. - В цикле, пока
iменьшеn, происходит:- Ввод роста следующего студента и сохранение этого значения в переменной
k. - Если
kменьшеmin, то обновление значенияmin. - Если
kбольшеmax, то обновление значенияmax. - Увеличение
iна 1. - Обнуление
kперед следующим циклом.
- Ввод роста следующего студента и сохранение этого значения в переменной
- После окончания цикла, в переменной
raznicaсохраняется разница междуmaxиmin. - Вывод значения
raznicaи пустой строки.