IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Одномерный массив вещественных чисел
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Простите за беспокойство, не могли бы вы помоч решить задачу...

Одномерный массив вещественных чисел R75 содержит данные о росте группы студентов. Массив заполнить значениями путем ввода с клавиатуры. Вычислить средний рост студентов и разность в росте между самым высоким и самым низким студентом. На экран вывести рост всех студентов групы по 5 чисел на строку экрана и вычисленные значения среднего роста и разности в росте.

Заранее спасибо!!! rolleyes.gif

Использовать кампилятор turbo c

Кампилятор turbo c
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Я только начал изучать turbo c и ничего не могу понять... mega_chok.gif Помогите кто нибудь плиз...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






#include <stdio.h>

#define SIZE 10

int main() {

double r[SIZE], average = 0.0, min = 10.0, max = 0.0;
int i;

for(i = 0; i < SIZE; ++i) {
printf("r[%2d] = ", i);
scanf("%lf", &r[i]);

average += r[i];
min = (r[i] < min) ? r[i] : min;
max = (r[i] > max) ? r[i] : max;
}
for(i = 0; i < SIZE; ++i)
printf("%6.3f%s", r[i], ((i + 1) % 5) ? " " : "\n");
printf("\nmax - min = %6.3f\naverage = %6.3f\n",
max - min, (double)(average / SIZE));


return 0;

}


Размер массива поставь, какой нужно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Спасибо большое Volvo!!!!! good.gif
Еще вопросик... конечно понимаю что это глупо, но где сдесь прописывать размер массива? unsure.gif
Я раньше только с Турбо Паскалем и с Делфи работал, поэтому в turbo c я пока дуб дубом...=)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Измени в
#define SIZE 
число 10 на то значение, которое тебе нужно...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Спасибо!=)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Да, немогли бы вы написать описание программы... Пожалуйста!
А то я что то разобраться до конца не могу... mega_chok.gif



#include <stdio.h>  - это открытие библиотеки             

#define SIZE 10 -задание массива

int main() { -? и начало

double r[SIZE], average = 0.0, min = 10.0, max = 0.0;
-это, я так понял, объявление переменных, но почему min = 10.0, max = 0.0 и что такое double r[SIZE] я не понял...(

int i;

for(i = 0; i < SIZE; ++i) - цикл от 0 и пока i < 10, i увеличиваем на 1
{
printf("r[%2d] = ", i); -?
scanf("%lf", &r[i]); -?

average += r[i]; -?
min = (r[i] < min) ? r[i] : min; -?
max = (r[i] > max) ? r[i] : max; -?
}
for(i = 0; i < SIZE; ++i) - цикл от 0 и пока i < 10, i увеличиваем на 1... только зачем второй раз я тоже не понял...

printf("%6.3f%s", r[i], ((i + 1) % 5) ? " " : "\n"); -?
printf("\nmax - min = %6.3f\naverage = %6.3f\n",
max - min, (double)(average / SIZE)); -?


return 0;

}





Если не трудно можете за место "?" напишите пожалуйста коментарии и справте если я что то не то написал...

Заранее большое спасибо!!! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






А можно, я попробую? Пока Volvo нет... rolleyes.gif

#include <stdio.h>

/* Размерность массива */
#define SIZE 10

/* Основная функция, выполняющаяся при запуске программы */
int main() {

/*
Описываем массив r из SIZE элементов типа double
и переменные average(начальное значение 0), min(изначально 10) и max(изначально 0)

Почему min = 10: а что, Вы видели где-то студентов с ростом больше 10 метров?
Главное, чтобы min было заведомо больше любого элемента массива
*/
double r[SIZE], average = 0.0, min = 10.0, max = 0.0;
int i;

/* Все верно, в цикле от 0 до 9 делаем следующее: */
for(i = 0; i < SIZE; ++i) {
printf("r[%2d] = ", i); /* Печатаем приглашение пользователю, какой элемент надо ввести */
scanf("%lf", &r[i]); /* И читаем этот элемент с клавиатуры */

average += r[i]; /* Суммируем все элементы сразу после ввода */

/* Конструкция (a) ? b : c
аналогична такому фрагменту:
if(a) b; else c;

следовательно, то, что записано ниже, будет эквивалентно:
min = (if(r[i] < min) r[i]; else min);
или, если перевести это в понятную компилятору форму:
if(r[i] < min) min = r[i]; else min = min;

(если очередной элемент массива меньше минимума, то ЭТО уже не минимум,
его надо заменить, запоминаем НОВЫЙ минимум, иначе - ничего не делать;
на самом деле, если мы присвоим значение одной переменной ЭТОЙ же самой
переменной, то ничего не изменится...)
*/
min = (r[i] < min) ? r[i] : min;

/* Все, что было сказано выше для минимума, остается в силе и для максимума,
только проверяем на "больше" */
max = (r[i] > max) ? r[i] : max;
}

/* Вот теперь, когда мы уже нашли min/max в массиве, проходим по нему еще раз,
чтоб его распечатать... Для этого нужен еще один цикл... */
for(i = 0; i < SIZE; ++i)
printf("%6.3f%s", r[i], ((i + 1) % 5) ? " " : "\n");
/* Выше применяется такой же условный оператор, как и тот, что я описывала раньше...
То есть, по другому, эту же строчку можно было бы записать так:

printf("%6.3f%s", r[i], (if ((i + 1) % 5) " "; else "\n") );
или, переводя в доступную для C форму записи
(поскольку нельзя записывать if внутри выражений, его придется вынести наружу):
if((i + 1) % 5) printf("%6.3f%s", r[i], " ");
else printf("%6.3f%s", r[i], "\n");

что по-русски должно обозначать: если номер элемента, который мы сейчас распечатываем,
НЕ кратен 5 - что остаток от деления (%) номера на 5 ненулевой - то между числами печатать пробел,
иначе, если номер кратен 5, то перевести строку...

Как видим, форма записи с "?:" гораздо компактнее...
*/

/* Ну, а это уже совсем просто - напечатать разность max/min элементов и среднее значение */
printf("\nmax - min = %6.3f\naverage = %6.3f\n",
max - min, (double)(average / SIZE));

/* Эта строчка требуется по Стандарту языка С */
return 0;
}


smile.gif Вот и все... Что-то непонятно?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 15
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Спасибо, Алена, ты меня спасла!=) Тебе респект! give_rose.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Помогите Помогите Помогите.....


В текстовом файле a.dat задан массив из 65 вещественных чисел. Найти наименьший элемент массива.


заранее спасибо!)
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 19:07
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name