Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Программа подсчета ненулевых значений

Ответить
Настройки темы
C/C++ - [решено] Программа подсчета ненулевых значений

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите написать программу подсчета ненулевых значений из десяти вводимых с клавиатуры чисел. Ввод необходимо организовать с помощью оператора цикла for.

Отправлено: 13:46, 19-12-2014

 

Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот, я сделал while (для программного продукта 2010 года). В подобный вид можете с for, а то чего-то....торможу(

Код: Выделить весь код
#include <iostream>
using namespace std;
int main ()
{
	int kol=0, x, i=1;
	const int n=10;
	while (i<=n)
	{
	cout<<"enter number"; cin>>x;
	if (x!=0) 
	   {
		   kol++;
	   }
	i++;
	}
    cout<<"Result "<<kol<<endl;
	system("pause");
	return 0;
}

Последний раз редактировалось Drongo, 20-12-2014 в 15:48. Причина: #


Отправлено: 06:50, 20-12-2014 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Вот так будет.
Код: Выделить весь код
#include <iostream>
using namespace std;
int main ()
{
   int kol = 0, x;
   
   for(int i = 1; i <= 10; i++){
      cout << "enter number " <<  i << ": ";
      cin >> x;
      if (x != 0)
         kol++;
    }

   cout << "Result " << kol << endl;
   system("pause");

   return 0;
}
Разницы между while и for нет, за исключением что при while нужно заранее объявить все переменные: счётчик, пороговое значение

Код: Выделить весь код
   int a = 10; // пороговое значение
   count = 0; // счётчик

   while(count < a){
      cout << "Num: " << count << endl;
      count++;
     }
А в for объявление стартовой переменной, пороговое значение и инкремент счётчика выполняется в одном теле

Код: Выделить весь код
   for(int i = 0; i < 10; i++)
      cout << "Num: " << i << endl;

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Последний раз редактировалось Drongo, 21-12-2014 в 16:15. Причина: Поправил...

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:00, 20-12-2014 | #12


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Последний вопрос... что значит это:
Цитата Drongo:
+ i + »

Отправлено: 09:51, 21-12-2014 | #13


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Dante_Deathcore:
Последний вопрос... что значит это: »
Вставку в строку вывода значения переменной «i». Рассматривайте выражение в целом:
Цитата Drongo:
Код: Выделить весь код
… "enter number " + i + ": " …
»

Отправлено: 12:44, 21-12-2014 | #14


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Да. Обычный проверочный тестовый вывод значений в цикле. Но там немного ошибка, нужно так.
Цитата Drongo:
Код: Выделить весь код
cout << "enter number " << i << ": ";
»
Сказалось что в момент написания примера работал с текстовыми строками в другом проекте и параллельно писал сообщение сюда.
Тм можно складывать их так
Код: Выделить весь код
String str1 = "test1";
String str2 = "test2";
String str3 = str1 + str2;

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 16:19, 21-12-2014 | #15


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот, посоветовался, подумал, подсказали.
Вот решение. Заберет кто, если столкнулся с подобной задачей.

Код: Выделить весь код
#include <iostream>
using namespace std;
int main()

{
	int sum, i, k;
	int a[10];
	cout<<"Enter 10 numbers \n";
	k=0;
    for (i=1; i<=10; i++)
	{
		cin>>a[i];
		if (a[i]!=0) k++;
	}
	cout<<"Result: "<<k<<"\n";
	system("pause");
}

Отправлено: 16:44, 21-12-2014 | #16


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


В данном контексте подобная реализация с массивами сомнительна.

1. Зачем создавать массив если следом за ним идёт цикл сохранения в массив и сразу же считывание этого значения?
2. Сохранять в массив нужно тогда когда вы предполагаете дальнейшее использование значений. В данной программе идёт проверка после ввода, и если условие удовлетворяется, инкрементируется счётчик. Всё. Введённое число в дальнейших расчётах не участвует. Не вижу необходимости в использовании массива... Выводите вы k, а не значения [i]a и на этом программа завершается.
3. Грубо говоря, в память у вас будет использоваться в холостую.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 01:32, 22-12-2014 | #17


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Drongo, запросто — требование «сверху». С другой стороны — в С++ нумерация элементов массива разве отличается от С? Не с нуля?
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:46, 22-12-2014 | #18


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


С одной стороны я поддерживаю Iska, т.к. использование массивов скроей всего действительно требование "сверху" в рамках изучения программирования (все знают, что там любят такие задачки).
С другой стороны, в задании, как его приводит Dante_Deathcore, нет строго указания на массивы, в отличии от ручного ввода данных, и здесь я вынужден согласиться с Drongo.
Сисадмин же во мне говорит "делай бекап и не порть данные, пригодятся".
Программист, ссылаясь на ТЗ, говорит – порть смело, память лишней не бывает!
Забавно

Отправлено: 03:22, 22-12-2014 | #19


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
С другой стороны — в С++ нумерация элементов массива разве отличается от С? Не с нуля? »
Кстати да, с нуля, иногда могут "игнорировать" нулевой элемент если хочется красивости и симметричности 1-й элемент = 1 счёчику обхода. Но тогда объявляют массив с размером n + 1, т.е. 10 уже никак не получится обойти если начать с единицы, т.е. i будет равна 10, а 10-й элемент массива имеет порядковый номер 9 (счёт же идёт с нуля...). Короче тут выход за границы диапазона. Ошибка.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 12:40, 22-12-2014 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Программа подсчета ненулевых значений

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Алгоритм подсчета покерной руки Vadikan Программирование и базы данных 24 04-11-2011 05:02
CD и DVD - Программа для подсчета количества записаных дисков Witov Программное обеспечение Windows 4 10-11-2010 17:51
Программа для подсчета энергопотребления железа - ищу. borison Хочу все знать 7 12-02-2010 00:26
Программа подсчета трафика. NewWind Общий по Linux 1 04-06-2007 16:37




 
Переход