Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 29

Сравнение двух многозначных чисел

14.04.2015, 21:30. Показов 2438. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
//Составить программу для сравнения двух n-значных чисел (n > 20)
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
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<conio.h>
using namespace std;
 
int main()
{
    void add(char *,char *);
    char a[100],b[100];
    printf("a=");
    gets(a);
    printf("b=");
    gets(b);
    add(a,b);
    //printf("a<b");
    printf("Press any key ... \n");
    getch();
 
    return 0;
}
 
void add(char *a,char *b)
{
    int i,l1,l2,l, t,r;
    l1=strlen(a);
    l2=strlen(b);
    if(l2>20 || l1>20)
    {
        printf("error\n");
    }
    else {
 
        for(i=0;i<l1;i++)
        {
            for(i=0;i<l2;i++)
            {
                while ( a[i]=b[i] )
                { i++;
                if ( a[i]>b[i] )
                { printf(">");
                break;
                i++;
                }
                else {
                    printf("<"); 
                    break;
                    i++;
                } 
 
                break; 
                }
                break;
            }
        } 
    }
не работает
и когда сравниваешь 123 и 124, пишет, что равны, помогите
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.04.2015, 21:30
Ответы с готовыми решениями:

Реализовать процедуру вычитания двух многозначных чисел
Добрейшего времени суток, необходима помощь в решении задачи. Сама задача: &quot;Реализовать процедуру вычитания двух многозначных...

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

Сравнение двух чисел
Заданы два натуральных числа A и B. Требуется вывести =, если они равны; &lt;, если A &lt; B; и &gt;, если A &gt; B. Гарантируется, что числа...

2
11 / 11 / 3
Регистрация: 18.12.2011
Сообщений: 112
15.04.2015, 01:10
Цитата Сообщение от Алиса42 Посмотреть сообщение
C++
1
2
3
4
5
6
7
while ( a[i]=b[i] )
{ i++;
 if ( a[i]>b[i] )
 { printf(">");
break;
 i++;
 }
как минимум в цикле while идет присвоение вместо проверки на равенство

Добавлено через 10 минут
+ цикл в цикле с одной и той же переменной...
+ ты сравниваешь конкретный элемент массива чаров то есть 123 и 124 i = 0 -> a[i] = 1 и b[i] = 1

Добавлено через 56 минут
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
#include<iostream>
 
using namespace std;
 
int main()
{
    void add(char *,char *);
    char a[100],b[100];
    printf("a=");
    gets_s(a);
    printf("b=");
    gets_s(b);
    add(a,b);
    //printf("a<b");
    printf("Press any key ... \n");
   
 
    return 0;
}
 
void add(char *a,char *b)
{
    int dif [20] = {0};
    int l1,l2;
    l1=strlen(a);
    l2=strlen(b);
    if(l2>20 || l1>20)
    {
        printf("error\n");
        return;
    }
    else if (l1 > l2)
    {
        cout << "a bigger than b" << endl;
        return;
    }
    else if (l2 > l1)
    {
        cout << "a smaller than b" << endl;
        return;
    }
    else 
    {
        for (int i = 0; i < l1; i++)
            
        if (a[i] == b[i])
            dif[i] = 0;
        else if (a[i] > b[i])
            dif[i] = 1;
        else if (a[i] < b[i])
            dif[i] = -1;
    }
    for (int i = 0; i < 20; i++)
    {
        if (dif[i] == 0)
            i++;
        else if (dif[i] == 1 )
        {
            cout << "a bigger than b" << endl;
            return;
        }
        else if (dif[i] == -1 )
        {
            cout << "a smaller than b" << endl;
            return;
        }
    }
    cout << "a equals b" << endl;
}
если в вижуал студио работаешь то юзай Ctrl +F5 и не пиши всяких getch(); для дебага точку останова и просто F5
Код не оптимальный, но работает (кстати у тебя условие что n>20 а ты при n >20 выводишь что ошибка...

Добавлено через 33 минуты
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
#include<iostream>
 
using namespace std;
 
int main()
{
    void add(char *,char *);
    char a[100],b[100];
    printf("a=");
    gets_s(a);
    printf("b=");
    gets_s(b);
    add(a,b);
    //printf("a<b");
    printf("Press any key ... \n");
   
    return 0;
}
 
void add(char *a,char *b)
{
    int l1,l2;
    l1=strlen(a);
    l2=strlen(b);
    if(l2>20 || l1>20)
    {
        printf("error\n");
        return;
    }
    else if (l1 > l2)
    {
        cout << "a bigger than b" << endl;
        return;
    }
    else if (l2 > l1)
    {
        cout << "a smaller than b" << endl;
        return;
    }
    else 
    {
        for (int i = 0; i < l1; i++)
        {
        if (a[i] == b[i])
            i++;
        else if (a[i] > b[i])
        {
            cout << "a bigger than b" << endl;
            return;
        }
        else if (a[i] < b[i])
        {
            cout << "a smaller than b" << endl;
            return;
        }
        }
    }
    cout << "a equals b" << endl;
}
так оптимальней
1
0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 29
15.04.2015, 20:00  [ТС]
ShikiofDevil, спасибо большое))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2015, 20:00
Помогаю со студенческими работами здесь

Сравнение двух чисел
Здравствуйте. Мне нужно решить простенькую задачу - нужно найти результат выражения c=a/b. Но имеется определенное условие - результат...

Сравнение двух чисел
Даны целые числа m и n. Если числа не равны, то заменить каждое из них одним и тем же числом, равным большему из исходных, а если равны, то...

Сравнение двух десятизначных чисел.
Допустим сравним 2012040404 и 2012040505 они окажутся одинаковы в моей программе. Помогите новичку. Тип данных использовал флоат. Поможет...

Побитовое сравнение двух чисел
Помогите сравнить 2 числа, сформировав результат(&gt;,&lt;,=)на основе последовательной проверки бит в их двоичном представлении.Причём...

Сравнение двух вещественных чисел
Почему не работает сравнение при числах: 2.85730505 2.85729861 bool isEqual( float x, float y ) { return std :: fabs( x -...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru