Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 09.07.2009, 22:59   #1
Zooleen
 
Регистрация: 09.07.2009
Сообщений: 4
Сообщение Как обнулить переменную?

В Си новичок, подскажите пожалуйста. Есть програмка, которая должна выводить среднее арифметическое, данные вводятся с помощью цикла scanf. Вопрос, как остановить действие цикла не дав оператору scanf значение?

Вот, собственно, сам код, не судите строго, однако от объективной критики не откажусь:
Код:
/* sariph.c - прогрмма выведения среднего арифметического */
#include <stdio.h>
int main () {
   int i, n = 1, a, max, out, d;
   printf ("Введите числа: ", n);
   scanf ("%d", &max);
   do {
       scanf ("%d", &a);
       max = max + a;
       n = n + 1;
   } while (a = d);
   out = max / n;
   printf ("%d\n", out);
   return 0;
}
Zooleen вне форума Ответить с цитированием
Старый 10.07.2009, 00:15   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Не очень понял сам вопрос. Остановить действие цикла, то есть выйти из него, можно с помощью оператора break.
А в данном случае нужно предусмотреть условие выхода. Например, если пользователь вводит ноль.
Код:
#include <stdio.h>

int main ()
{
   int n = -1, a, max=0;
   double out;
   do {
       n++;
       scanf ("%d", &a);
       max = max + a;
   } while (a);
   out = (double)max / n;
   printf ("%lf\n", out);
   return 0;
}
Переменную out нужно сделать вещественного типа, иначе значение будет не точным.
max нужно инициализировать нулем.

Еще можно заранее запрашивать количество слагаемых, тогда ноль тоже будет учитываться.

А можно вообще читать число как строку, а потом преобразовывать в число. Тогда выход из цикла можно осуществлять при неудачной конвертации.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить переменную? molodoyy Общие вопросы C/C++ 5 21.01.2009 05:34
Как прочитать именованную переменную? viter.alex Microsoft Office Excel 1 19.01.2009 22:13
Обнулить счетчик в Access! xes БД в Delphi 0 14.06.2008 21:14
Нельзя обнулить поле в записи?!! darkstarx Общие вопросы .NET 1 07.02.2008 00:53
Как задать мнимую переменную AlexVI Общие вопросы Delphi 2 21.01.2007 04:00