Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 180
#1

Сумма цифр правой и левой частей (ошибки) - C++

12.10.2012, 19:42. Просмотров 310. Ответов 3
Метки нет (Все метки)

Хоть убейте не могу понять где ошибки.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <cmath>
 
using namespace std;
int main()
 
{
double N, N1,N2,N3,N4,N5,N6,N7,N8,D,C,SR,SL;
int a,b,c,d,e,f,Cel,Drob;
  cout << "Enter N"<<endl;
  cin >> N;
D = modf(N,&C);
cout<<C<<endl<<D<<endl;
Cel = C;
a = Cel % 1000; N1= Cel/= 1000;
b = a % 100; N2= a/= 100;
c = b % 10; N3= b/= 10;
N4 =c;
Drob = D*10000;
d = Drob % 1000; N5= Drob/= 1000;
e = a % 100; N6= d/= 100;
f = b % 10; N7= e/= 10;
N8 =f;
SR = N1+N2+N3+N4;
SL = N5+N6+N7+N8;
if ( SR = SL )
cout <<SL<<endl<<SR<<endl<< "Da";
else cout <<"Net";
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2012, 19:42     Сумма цифр правой и левой частей (ошибки)
Посмотрите здесь:

Столбцы левой половины массива поменять местами со столбцами правой половины C++
Разместить все элементы с положительными значениями в левой части массива, с отрицательными — в правой C++
Найдите такие натуральные числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа делилась на 7 C++
C++ Найти простые числа, чтобы сумма их цифр, а также сумма цифр следующего за ним числа, делилась на 7
C++ Задача "сумма цифр стоящих на четных позициях", исправьте пожалуйста ошибки
Массив: Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой C++
C++ Определить значение k, при котором минимален модуль разности сумм элементов в правой и левой части на языке С++
C++ Создать бинарное дерево, по правой ветке - переменные типа инт, по левой - 2 переменные типа чар
Определить для числа: является ли сумма его цифр двузначным числом; больше ли сумма его цифр числа "а" C++
Рекурсия: количество цифр в числе, сумма цифр и реверс числа C++
C++ Столбцы левой половины матрицы поменять местами со столбцами правой половины
Определить сколько цифр в заданном натуральном числе, и чему равна сумма его цифр C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
isvpro
72 / 7 / 1
Регистрация: 07.10.2009
Сообщений: 51
12.10.2012, 20:49     Сумма цифр правой и левой частей (ошибки) #2
Возможно будет проще помочь, если Вы скажете, что вообще должна делать эта программа? Т.е. какого эффекта хотели Вы достичь?
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 180
12.10.2012, 21:30  [ТС]     Сумма цифр правой и левой частей (ошибки) #3
Цитата Сообщение от isvpro Посмотреть сообщение
Возможно будет проще помочь, если Вы скажете, что вообще должна делать эта программа? Т.е. какого эффекта хотели Вы достичь?
Определить, равна ли сумма цифор дробной части заданного положительного вещественного числа сумме цифр целой части.
isvpro
72 / 7 / 1
Регистрация: 07.10.2009
Сообщений: 51
13.10.2012, 15:29     Сумма цифр правой и левой частей (ошибки) #4
После анализа предложенного алгоритма я понял, что проще написать с нуля =)
Вот такой код получился. Если что не понятно - спрашивайте.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//подключим библиотеке
#include <iostream>
 
//укажем пространство имен, чтобы не тыкать std каждый раз
using namespace std;
 
//поехали
int main()
 
{
    //определим переменную, в которой будем хранить введенное значение
    double valueToAnalyse_float;
 
    //сразу запросим это значение и сохраним
    //вывод делаю по-английски, чтобы не писать лишнего кода мешающего в данном случае для понимания алгоритма
    cout << "Please enter the value to anyalyse: "; cin >> valueToAnalyse_float;
 
    //воспользуемся стандартными средствами для определения целой и дробной частей, если кому не нравится - можно и modf
    
    int integradPartOfAnalysingValue_int;           // собственно целая часть будет храниться здесь
    double fractionalPartOfAnalysingValue_float;     //дробная часть будет храниться здесь
 
    integradPartOfAnalysingValue_int = static_cast<int>(valueToAnalyse_float); // получим целую часть путем явного преобазования (дробь просто отбросится)
    fractionalPartOfAnalysingValue_float = valueToAnalyse_float - integradPartOfAnalysingValue_int; // вычтем из всего числа, целую часть и логично предположить, что мы получим дробную часть.
 
    //определим сумму цифр целой части
    int sumIntegralPartOfAnalysingValue_int=0;
    
    while (integradPartOfAnalysingValue_int != 0)
    {
        sumIntegralPartOfAnalysingValue_int += integradPartOfAnalysingValue_int - integradPartOfAnalysingValue_int/10*10;
        integradPartOfAnalysingValue_int /= 10;
    }
    //теперь определим сумму цифр дробной части
    int sumFractionalPartOfAnalysingValue_int=0;
 
    //сначала сделаем дробную часть "целой"
    while(abs(fractionalPartOfAnalysingValue_float - static_cast<int>(fractionalPartOfAnalysingValue_float+0.5)) > 0.01)
    {
        fractionalPartOfAnalysingValue_float *= 10;
    }
    //приведем нашу "приведенную к целому типу" дробную часть к действительно целому типу
    int fractionalPartOfAnalysingValue_int = static_cast<int>(fractionalPartOfAnalysingValue_float+0.5);
    //и теперь применим к нему такой же механизм подсчета значащих цифр
 
    while (fractionalPartOfAnalysingValue_int != 0)
    {
        sumFractionalPartOfAnalysingValue_int += fractionalPartOfAnalysingValue_int - fractionalPartOfAnalysingValue_int/10*10;
        fractionalPartOfAnalysingValue_int /= 10;
    }
    //выведем оба числа
    if (sumIntegralPartOfAnalysingValue_int == sumFractionalPartOfAnalysingValue_int)
        {cout << "The summ of digits at integral parts and fracional parts of value, are both equal to:" << sumIntegralPartOfAnalysingValue_int;}
 
    else if (sumIntegralPartOfAnalysingValue_int > sumFractionalPartOfAnalysingValue_int)
        {cout << "The summ of digits at integral parts are more than fracional parts of value: " << sumIntegralPartOfAnalysingValue_int << " > " << sumFractionalPartOfAnalysingValue_int ;}
    else if (sumIntegralPartOfAnalysingValue_int < sumFractionalPartOfAnalysingValue_int)
        {cout << "The summ of digits at integral parts are less than fracional parts of value: " << sumIntegralPartOfAnalysingValue_int << " < " << sumFractionalPartOfAnalysingValue_int ;}
    return 0;
 
    
}
Yandex
Объявления
13.10.2012, 15:29     Сумма цифр правой и левой частей (ошибки)
Ответ Создать тему
Опции темы

Текущее время: 07:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru