Форум программистов, компьютерный форум, киберфорум
Наши страницы

Нахождение остатка от деления любых дробных чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать массив из пяти элементов. http://www.cyberforum.ru/cpp-beginners/thread519886.html
Создать массив из пяти элементов. Ввести число и сравнить поочерёдно с каждым элементом массива. #include <stdio.h> main() { int mas ={3,7,0,2,2}; /*ñîçäà¸ì ìàññèâ èç 5 ýëåìåíòîâ*/ int x,i;...
C++ Объясните некоторые моменты в задаче Здравствуйте, вот мне накинули задачу Пользователь вводит число А не более 4-х разрядов. Вывести всевозможные комбинации из цифр этого числа длиной числа А. Цифры могут повторяться. Без массива! ... http://www.cyberforum.ru/cpp-beginners/thread519885.html
Массив: Построить из динамического одномерный массив,каждый элемент, которого равен сумме элементов одной строки исходной матрицы. C++
Помогите решить. Как можно проще, только начали изучать указатели. Дана динамическая целочисленная матрица.Построить динамический одномерный массив,каждый эллемент которого равен сумме элементов...
C++ Удаление подстрок из строки. Суммировать "вес" удаленных строк
Думаю, что задача стандартная, и известна большинству программистам: Дана строка s, а также набор подстрок, которые можно удалять из этой строки, причем каждая подстрока имеет свой "вес". При...
C++ Антивирусы http://www.cyberforum.ru/cpp-beginners/thread519863.html
На чём кроме C и C++ пишут антивирусы?
C++ метод ньютона плиз проверьте всё ли правильно???логически??? # include <iostream> # include <windows.h> # include <conio.h> # include <stdlib.h> # include <stdio.h> # include <math.h> # include <cmath> #... подробнее

Показать сообщение отдельно
rovel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25

Нахождение остатка от деления любых дробных чисел - C++

16.03.2012, 00:27. Просмотров 3165. Ответов 5
Метки (Все метки)

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
// Ostatok.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include "string.h"
#include "stdio.h"
#include <iostream.h>
 
int CharToInt(char s)//перевод в целые числа
{
    int k;
    switch (s)
    {
        case '0': k=0; break;
        case '1': k=1; break;
        case '2': k=2; break;
        case '3': k=3; break;
        case '4': k=4; break;
        case '5': k=5; break;
        case '6': k=6; break;
        case '7': k=7; break;
        case '8': k=8; break;
        case '9': k=9; break;
    }
    return k;
 
}
 
int main(int argc, char* argv[])
{
int i, j, lendel1, lendel2, l, znac,s1d,s2d,raznd,s1ch,s2ch,k,r,k1,j1,ss1[50],ss2[50],t;
char s1[51], s2[51], res[51], s1cop[51];
printf("Vvedite chisla \n");
s1d=0;
s2d=0;
gets(s1); //вводим переменные
gets(s2);
for(i=0;i<50;i++)//обнуляем массивы чисел
{
    ss1[i]=0;
    ss2[i]=0;
}
for (i=0; i<strlen(s1); i++)
{
if ((s1[i]=='.') | (s1[i]==',')) 
{
    s1d=strlen(s1)-i-1;//количество знаков после запятой в числителе
    s1ch=i;//количество до запятой знаков в числителе
}
}
for (i=0; i<strlen(s2); i++)
{
if ((s2[i]=='.') | (s2[i]==',')) 
{
    s2d=strlen(s2)-i-1;//количество знаков после запятой в знаменателе
    s2ch=i;//количество до запятой знаков в заменателе
}
}
j=0;
j1=0;
for (i=0; i<strlen(s1); i++)//цикл заполнения массива чисел числителя
if ((s1[i]!='.') & (s1[i]!=',')) //исключаем запятую и точку
{
    ss1[j1]=CharToInt(s1[i]);//заполнение элемента
    j1++;
}
for (i=0; i<strlen(s2); i++)//цикл заполнения массива чисел знаменателя
if ((s2[i]!='.') & (s2[i]!=',')) //исключаем запятую и точку
{
    ss2[j]=CharToInt(s2[i]);//заполнение элемента
    j++;
}
if (s1d>s2d) { raznd=s1d-s2d; j=j+raznd;}//считаем порядки чисел
else {raznd=s2d-s1d; j1=j1+raznd;}
if (s1ch<s2ch) cout<<s1;//если числитель меньше, то выводим его как остаток
else 
{
    do
    {
        l=0;
        t=j1-j;
        while (t!=1)// при вычитании проверяем не равны ли 0 числа массива, порядок которых больше знаменателя
        {
            t--;
            if ((ss1[t]<=0) & (ss1[t-1]>0)) { ss1[t-1]--; ss1[t]=ss1[t]+10;}
        }
        for (i=j1;i>j1-j;i--)//цикл вычитания
        {
            if (ss1[i]<ss2[i-j1+j]) {ss1[i-1]--; ss1[i]=ss1[i]+10;}
            ss1[i]-=ss2[i-j1+j];
        }
        for (i=0;i<j1-j;i++)//проверяем бльше ли 0 числа  порядок которых больше знаменателя
            if (ss1[i]>0) l++;
        if (ss1[j1-j+1]>ss2[0]) l++;//проверяем меньше ли первая цифра знаменателя чем цифра того же порядка числителя
    } while (l!=0);//проверяем условие для завершения цикла
    for (r=j;r<j1;r++)//выводим число.
        cout<<ss1[r];
    
}
return 0;
}
Эта прога должна находить остаток от деления любых дробных чисел. В качестве входных данных числа с 50 цифрами. Операция : остаток от деления. Операнды: дробные числа без знака с фиксированной запятой. Вот написал код один человек, но он реализовал так - вместо того , чтобы делить в столбик, решил вычитать, пока уменьшаемое не будет меньше вычитаемого, и в итоге получится остаток. Но программа не работает, где-то ошибка?

 Комментарий модератора 
rovel, Правила
3.3. Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
Изначальное название темы: "помогите разобраться с кодом!".
п.2.7. Избегайте грамматических ошибок при написании сообщений - уважайте себя и других участников форума.
С вашей стороны это даже не грамматические ошибки, а злостное неуважение людей, от которых вы ждете помощи.

Устное предупреждение.
оригинал
эта прога должна находить остаток от деления любых дробных чисел...в качестве входных данных числа с 50 цифрами...операция :остаток от деления...операнды:дробные числа без знака с фиксированной запятой...вот написал код один человек...но он реализовал так...он вместо того , чтобы делить в столбик ...решил вычитать, пока уменьшаемое не будет меньше вычитаемого...и в итоге получится остаток...но программа не работает, где-то ошибка...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru