Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Santex1
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 8
1

Найдите среднее арифметическое введённых с клавиатуры чисел. Ввод заканчивается при вводе пустой строки

22.02.2019, 15:18. Просмотров 328. Ответов 9
Метки нет (Все метки)

Помогите пожалуйста написать программу, т.к. это вопрос жизни и смерти.
Найдите среднее арифметическое введённых с клавиатуры чисел. Ввод заканчивается, когда пользователь вводит пустую строку. На языке СИ!
Есть небольшая наработка, только не знаю как сделать ввод пустой строки.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    #include <stdio.h>
    #include <conio.h>
     
    int main()
    {  int i,s;
    s=0;
    int m[10];
    for (i=0;i<10;i++)
    {
        scanf("%d", &m[i]);
        s=s+m[i];
    }
    s=s/2;
    printf("%i",s);
        return 0;
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.02.2019, 15:18
Ответы с готовыми решениями:

Найти среднее арифметическое чисел, введённых до признака конца строки
Дана последовательность вещественных чисел. Признак конца строки - число 999. Найти среднее...

Найдите среднее арифметическое последовательности натуральных чисел, заданных с клавиатуры
Дано натуральное число N и последовательность a1, a2, a3...aN натуральных чисел, заданных с...

Выведите среднее арифметическое всех неотрицательных из введённых чисел
помогите написать пожалуйста такую программу: Запросите у пользователя последовательность...

При вводе К чисел найдите среднее арифметическое тех из них, которые являются нечетными
При вводе К чисел найдите среднее арифметическое тех из них, которые являются нечетными. BASIC +...

Задаются с клавиатуры натуральные числа Н,при вводе н=0 выход из программы.найти среднее арифметическое чисел и выдать их на экран решением
Помогите пожалуйста. Задаются с клавиатуры натуральные числа Н,при вводе н=0 выход из...

9
analogov net
179 / 129 / 66
Регистрация: 17.11.2018
Сообщений: 361
22.02.2019, 18:55 2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{ 
    char   num[21] = "";
    double sum     = 0.0;
    int    count   = 0;
 
    while( fgets( num, 21, stdin ) && *num != '\n' )
    {
        sum += atof( num );
        count++;
    }
 
    printf( "average: %g\n", sum / count );
    return 0;
}
1
Байт
Эксперт C
20452 / 12982 / 2728
Регистрация: 24.12.2010
Сообщений: 27,167
22.02.2019, 19:55 3
analogov net, код решает вопрос "жизни и смерти" в том случае, если ввод каждого числа сопровождается Enter. И конечная строка не просто пуста, но только из этого Enter и состоит.
прочем, задача поставлена столь небрежно, что видимо, самому ТС на этот вопрос наплевать. И в данном случае лучше положиться на судьбу.
0
analogov net
179 / 129 / 66
Регистрация: 17.11.2018
Сообщений: 361
22.02.2019, 20:12 4
Цитата Сообщение от Байт Посмотреть сообщение
код решает вопрос "жизни и смерти" в том случае, если ввод каждого числа сопровождается Enter. И конечная строка не просто пуста, но только из этого Enter и состоит.
Байт, именно это код и делает...
0
22.02.2019, 20:12
Байт
Эксперт C
20452 / 12982 / 2728
Регистрация: 24.12.2010
Сообщений: 27,167
22.02.2019, 20:18 5
Цитата Сообщение от analogov net Посмотреть сообщение
Байт, именно это код и делает...
Да, это понятно. Разобрать его - труд невеликий. Я к тому, что задача поставлена небрежно и может иметь много трактовок. Одну из которых, простейшую, вы и выбрали. Вот, собственно, и все.
0
Santex1
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 8
24.02.2019, 21:36  [ТС] 6
Имею смелость задать вам следующие вопросы, так как в интернете я всё перерыл и ей богу не понял ни черта. Пожалуйста простите меня за моё скудоумие. Но серьёзно, вопрос жизни и смерти.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{ 
    char   num[21] = "";
    double sum     = 0.0;
    int    count   = 0;
 
    while( fgets( num, 21, stdin ) && *num != '\n' ) //По подробнее можете объяснить эту строчку?
    {
        sum += atof( num );//Откуда здесь atof и что он делает?
        count++;
    }
 
    printf( "average: %g\n", sum / count );//Что здесь означает %g?
    return 0;
}
0
Байт
Эксперт C
20452 / 12982 / 2728
Регистрация: 24.12.2010
Сообщений: 27,167
24.02.2019, 23:00 7
Цитата Сообщение от Santex1 Посмотреть сообщение
Но серьёзно, вопрос жизни и смерти.
А вот этого не надо. Получается, что эти вопросы для вас ничего не стоят.
Цитата Сообщение от Santex1 Посмотреть сообщение
while( fgets( num, 21, stdin ) && *num != '\n' ) //По подробнее можете объяснить эту строчку?
fgets - ввод строки. Посмотрите документацию на нее. Там ничего сложного. Одновременно проверятся, не является ли строка пустой (*num!= '\n'). Я бы сделал иначе, но будем разбирать этот код
Цитата Сообщение от Santex1 Посмотреть сообщение
atof( num );//Откуда здесь atof и что он делает?
Более чем просто. atof - это функция, которая из строки делает число. Вот видит она строку " 1234.567фф" и делает из нее число типа double, машинное число, которое можно и прибавить к чему-то.
Цитата Сообщение от Santex1 Посмотреть сообщение
в интернете я всё перерыл
Рыл значит, не там, и не умело. Про функцию atof тебе любой расскажет.
Цитата Сообщение от Santex1 Посмотреть сообщение
printf( "average: %g\n", sum / count );//Что здесь означает %g?
Опять же немного старания и удачи. Функция printf - у нее самое интересное - параметры с процентиками в первой строке. Опять же - интернет в помощь. Но эта функцифлюшка может творить просто чудеса.
Не нравится "%g" - замени на "%f". Тоже будет хорошо.

Добавлено через 12 минут
Santex1, Маленькая добавка про atof Это очень умная функция. Вот она видит строку. Пропускает пробелы. Как только видит плюс или минус или цифру, вскликает, "о, это мое!" И начинает переводить в машинное число. Пока не встренет ахинею, которую ей в число перевести не удается. Тогда она с печалью кончает свою работу, и возвращает то число, которое ей удалось создать. Подобным образом работает и atoi
Заметочка. Если строка будет такая "Huynia vsiakaja", то обе функции покорно вернут 0.

Добавлено через 11 минут
analogov net, давай, подключайся! Парень пытается понять, а не "сдать и забыть". Трактовать такие твои экзерсисы, конечно, можно. Но сделай для него, чисто из гуманитарных побуждений, чуток попроще. Конечно, я надеюсь, что к моменту твоего ответа какие-то элементарные вещи он уже поймет.
0
Santex1
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 8
24.02.2019, 23:04  [ТС] 8
Байт Я понял насчёт printf и про atof тоже более менее. Благодарю.
0
Байт
Эксперт C
20452 / 12982 / 2728
Регистрация: 24.12.2010
Сообщений: 27,167
24.02.2019, 23:29 9
Вот опять в личку получил
В общем, чтобы не тянуть резину, скажу сразу. Мне требуется ваша помощь как специалиста по этим программам. У меня завтра грубо говоря зачёт и я готов сидеть до самого утра рыть информацию и грызть гранит науки. В общем, я создавал эти программы, но не ведал как их объяснить. Знаете, когда человек создать может, но объяснить никак. Так вот это про меня.
Есть у меня программа. Которая подсчитывает слова начинающиеся с буквы b именно маленькой. Так вот, помогите пожалуйста разобрать её.
Жить уже не охота. Срываю корону и ухожу в монастырь. Santex1, представьте, что творится в душе и голове человека, получающего десяток таких штук в личку. в день! Да надоели так, что хоть самому топиться, то ли вас всех утопить!
Есть правило - 4.6. Не читаем? Ну да ладно, никто не читает. А своих мозгов нету?
Ваши послания подобны хватанию за рукав.
Поясняю это грубой метафорой. Вы - нищие. Вы сидите и подставляете прохожим свои шапки. А я иду, барин, я богат. У меня есть монетки знания. И я кидаю эти монетки в ваши шапки, мне не жалко, да и не убудет. Но если кто-то из этой толпы хватает меня за рукав - "Дай, дай, дай!", я отряхиваюсь, и конечно же, ничего ему не дам.
0
Santex1
0 / 0 / 0
Регистрация: 22.02.2019
Сообщений: 8
24.02.2019, 23:38  [ТС] 10
Цитата Сообщение от Байт Посмотреть сообщение
Жить уже не охота. Срываю корону и ухожу в монастырь. Santex1, представьте, что творится в душе и голове человека, получающего десяток таких штук в личку. в день! Да надоели так, что хоть самому топиться, то ли вас всех утопить!
Есть правило - 4.6. Не читаем? Ну да ладно, никто не читает. А своих мозгов нету?
Ваши послания подобны хватанию за рукав.
Поясняю это грубой метафорой. Вы - нищие. Вы сидите и подставляете прохожим свои шапки. А я иду, барин, я богат. У меня есть монетки знания. И я кидаю эти монетки в ваши шапки, мне не жалко, да и не убудет. Но если кто-то из этой толпы хватает меня за рукав - "Дай, дай, дай!", я отряхиваюсь, и конечно же, ничего ему не дам.
Байт, Я всё понимаю и да с правилами я тоже не знаком, в этом каюсь. Единственное, что меня сподвигло написать вам в личку, так это быстрота ответа. Я очень долго жду ответа на свой вопрос. И да, я понимаю что это нагло с моей стороны, но ведь и с другой стороны я очень хочу разобраться. Я не просто ведь написал это, вы же должны понимать, что на то были причины.
0
24.02.2019, 23:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2019, 23:38

Не прекращается ввод при вводе пустой строки
Подскажите, пожалуйста, почему у меня не происходит прерывание цикла при вводе пустой строки вместо...

Для каждой строки массива найдите среднее арифметическое положительных чётных чисел
в целочисленном массиве A(n,m) для каждой строки найдите среднее арифметическое положительных...

Найти Sr – среднее арифметическое введённых чисел
Ввести два числа n и m . Вывести все степени числа 2 начиная с 2n заканчивая 2m . Найти Sr –...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru