Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2014, 18:25   #1
NYork
Пользователь
 
Регистрация: 17.11.2014
Сообщений: 35
По умолчанию C++, Операторы цикла!

Доброго времени суток!
Нужна помощь специалистов в написании программы. Вот условие -

Вводится целое число. Найти среднее арифметическое цифр данного числа, не равных
нулю.
Пример: введено: 384
результат: 5
Пример: введено: 3804
результат: 5


Мой вариант такой (научился только считать сумму чисел, как дальше - запутался)
Заранее спасибо!

Код:
#include <iostream>
#include <locale.h>

using namespace std;

int main()
{
	setlocale(LC_ALL, "Rus");
	int num, sum = 0, a, i = 1;
	cout << "Введите число: ";
	cin >> num;
	while (num != 0)
	{
		a = num % 10;
		num = (num - a) / 10;
		sum = sum + a;
	}
	
	cout << sum << endl;


	system("pause");
	return 0;
}

Последний раз редактировалось Stilet; 17.11.2014 в 20:37.
NYork вне форума Ответить с цитированием
Старый 17.11.2014, 20:19   #2
Bugrimov
C/C++, Java
Участник клуба
 
Аватар для Bugrimov
 
Регистрация: 28.03.2012
Сообщений: 1,679
По умолчанию

Вот вариант решения на Java...

Код:
package ru.bugrimov;

import java.util.Scanner;

public class Main {
    public static void main(String [] args) {
        Scanner scanner = new Scanner(System.in);
        int sammy = 0;
        int count = 0;
        int numb;

        System.out.print("Введите число: ");
        numb = scanner.nextInt();   // Ввод числа и сохранение его в переменной numb

        while (numb != 0) {
            if (numb % 10 != 0) {
                sammy += (numb % 10);
                count ++;
            }
            numb = numb / 10;
        }

        System.out.println("Среднее значение: " + (double)sammy / count);
    }
}
На C++:

Код:
#include <iostream>
#include <clocale>

using namespace std;

int main()
{
    int sammy = 0;
    int count = 0;
    int numb;
    double sr;

    cout << "Введите число: ";
    cin >> numb;   // Ввод числа и сохранение его в переменной numb

    while (numb != 0)
    {
        if (numb % 10 != 0)
        {
            sammy += (numb % 10);
            count ++;
        }
        numb = numb / 10;
    }

    sr = sammy / count;
    cout << "Среднее значение: " << sr << endl;

    return 0;
}
"Keep it simple" - придерживайтесь простоты!
Уильям Оккам - "Не следует множить сущее без необходимости"
Сложность - враг простоты и удобства!

Последний раз редактировалось Bugrimov; 17.11.2014 в 20:32.
Bugrimov вне форума Ответить с цитированием
Старый 17.11.2014, 20:35   #3
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Вот вариант решения на Java...

Код:
package ru.bugrimov;

import java.util.Scanner;

public class Main {
    public static void main(String [] args) {
        Scanner scanner = new Scanner(System.in);
        int sammy = 0;
        int count = 0;
        int numb;

        System.out.print("Введите число: ");
        numb = scanner.nextInt();   // Ввод числа и сохранение его в переменной numb

        while (numb != 0) {
            if (numb % 10 != 0) {
                sammy += (numb % 10);
                count ++;
            }
            numb = numb / 10;
        }

        System.out.println("Среднее значение: " + (double)sammy / count);
    }
}
я извиняюсь, а разве ноль перестал быть цифрой? а если ноль все таки цифра, то почему тогда в последнем делении нету проверки деления на ноль? И если ноль действительно цифра, то при задании числа 0 количество цифр жеж нулю не равно

Последний раз редактировалось Smogg; 17.11.2014 в 20:40.
Smogg вне форума Ответить с цитированием
Старый 17.11.2014, 20:56   #4
NYork
Пользователь
 
Регистрация: 17.11.2014
Сообщений: 35
По умолчанию

)))))))))))))

Цитата:
Сообщение от Bugrimov Посмотреть сообщение
Вот вариант решения на Java...

На C++:



Спасибо!!! Выручили!
Настоящий специалист!

Последний раз редактировалось Stilet; 18.11.2014 в 07:30.
NYork вне форума Ответить с цитированием
Старый 17.11.2014, 21:54   #5
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Цитата:
Сообщение от NYork Посмотреть сообщение
Спасибо!!! Выручили!
Настоящий специалист!
Халтурщик он! Или провокатор, что по результату одно и тоже

Какое среднее арифметическое цифр у числа 1000?
Smogg вне форума Ответить с цитированием
Старый 17.11.2014, 22:20   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Какое среднее арифметическое цифр у числа 1000?
кстати да, тип ср.арифм. должон жэж быть вещестенным!
среднее = сумма ненул. цифр / кол-во ненул. цифр.
если препод ввёл «0», прога должна обматерить препода.
если препод ввёл отриц. число, надо модуль.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 17.11.2014, 23:14   #7
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
если препод ввёл «0», прога должна обматерить препода.
если препод ввёл отриц. число, надо модуль.
Да с какого перепугу ноль выкидывается??
Или вы не верите в абстрактность Математики?
Цитата:
В математике и статистике сре́днее арифмети́ческое — одна из наиболее распространённых мер центральной тенденции, представляющая собой сумму всех зафиксированных значений, деленную на их количество.
Wiki
Если откидывать нулевые значения, то вся матстатистика превращается в поэзию.
Smogg вне форума Ответить с цитированием
Старый 17.11.2014, 23:22   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Или вы не верите в абстрактность Математики?
я не верю в абстрактность цифровой электроники.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 17.11.2014, 23:51   #9
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
я не верю в абстрактность цифровой электроники.
Именна!
Если double меньше DBL_MIN, то это ноль или нет? Пусть аналогово это лишь почти-почти-почти ноль, но дижитально вполне себе.
Smogg вне форума Ответить с цитированием
Старый 18.11.2014, 00:03   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

я имел в виду нулевое количество (UINT) ненулевых цифр во введённом числе.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
операторы цикла димон4ик_ Паскаль, Turbo Pascal, PascalABC.NET 4 16.03.2013 14:46
Операторы цикла 2 Pchelka1992 Помощь студентам 0 09.06.2011 11:58
Операторы цикла yana33311 Паскаль, Turbo Pascal, PascalABC.NET 3 01.03.2011 09:20
Операторы цикла Asira Помощь студентам 0 21.12.2009 00:04
Операторы цикла Paul Oakenfold Паскаль, Turbo Pascal, PascalABC.NET 1 08.04.2009 16:02