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

Нахождение остатка от деления любых дробных чисел - 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; printf("enter x\n"); scanf("%d",&x); for(i=0;i<=2;i++){ if (x==mas) printf ("%d ravno %d\n",x,mas);
C++ Объясните некоторые моменты в задаче Здравствуйте, вот мне накинули задачу Пользователь вводит число А не более 4-х разрядов. Вывести всевозможные комбинации из цифр этого числа длиной числа А. Цифры могут повторяться. Без массива! И решение такое #include "stdafx.h" #include "math.h" void main () 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> # include <iomanip> подробнее

Показать сообщение отдельно
rovel
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 25
16.03.2012, 00:27     Нахождение остатка от деления любых дробных чисел
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 цифрами...операция :остаток от деления...операнды:дробные числа без знака с фиксированной запятой...вот написал код один человек...но он реализовал так...он вместо того , чтобы делить в столбик ...решил вычитать, пока уменьшаемое не будет меньше вычитаемого...и в итоге получится остаток...но программа не работает, где-то ошибка...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru