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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2009, 14:06   #11
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
counter, я использовал первый вариант, все работает, но вот только компилятор ругается:
Код:

warning C4244: '=' : conversion from 'double' to 'int', possible loss of data
warning C4244: '+=' : conversion from 'double' to 'int', possible loss of data
Это можно избежать?
он ругается из за не соответствия типов

получается что mas - типа int, а выражение

Код:
(n%(int)(pow((float)10,(i+1))))/pow((float)10,i);
возвращает float

можно использовать приведение типов или объявите mas как float
counter вне форума Ответить с цитированием
Старый 02.02.2009, 23:49   #12
recond
 
Регистрация: 02.02.2009
Сообщений: 6
По умолчанию

Подскажите, как вычислить сумму 10 введенных пользователем цифр? Например вот этот код дает не верный результат:

Код:
	unsigned int n=4287965428;
	
	unsigned int c=0,k=1,s=0;
	
	while(k>=1)
	{
		k=n/pow(10,(float)(c+1));;
		c++;		
           }
	
	for(int i=0;i<c;i++)
	{
	  s+=(n%(int)(pow((float)10,(i+1))))/pow((float)10,i);
	}
recond вне форума Ответить с цитированием
Старый 03.02.2009, 00:07   #13
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

так пойдет
Код:
int main()
{   
	//!if int -> max 10 number
	int x = 1234567890;
	int sum = 0;
	while(x)
	{
		sum += x%10;
		x /=10;
	}
	cout<<sum<<endl;
	return 0;
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 03.02.2009, 00:16   #14
recond
 
Регистрация: 02.02.2009
Сообщений: 6
По умолчанию

ISergeyN, а что если int x=5234567890, как это посчитать???
recond вне форума Ответить с цитированием
Старый 03.02.2009, 00:31   #15
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

А зачем вводимые пользователем цифры так записывать? Нельзя воспользоваться массивом?
Код:
int main()
{
int a[9]
for(int i=0;i<10;i++)
{
cout << "Введите число: ";
cin >> a[i]
}
Далее с этими цифрами можно сделать все что угодно, думаю посчитать сумму массива труда не составит? =)
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 03.02.2009, 00:36   #16
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Учитывайте диапозони допустимых значений
int : -2147483648..2147483647
Воспользуйтесь вместо int - __int64
__int64 : -2^63..2^63-1
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как инфу от idwhois разбить по строкам? jay-forum Работа с сетью в Delphi 4 12.01.2009 16:11
Как разбить число по числам? maxim_ov Microsoft Office Excel 3 04.08.2008 16:23
как разбить таблицу при копировании StasSv Microsoft Office Excel 3 11.02.2008 10:23
как разбить текстовую ячейку на отдельные ячейки? zetrix Microsoft Office Excel 0 31.10.2006 07:46