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

Организовать ручной ввод 80-значных чисел вместо случайного ввода

21.12.2015, 18:10. Показов 912. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужна помощь, как организовать ручной ввод чисел вместо случайного ввода? заранее спасибо
вот код:
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
#include <iostream>
#define N 80
 
using namespace std;
 
// a = b
bool Equal(int a[], int b[])
{
   for (int i=0; i<N; i++)
    if(a[i]!=b[i])
     return 0;
 
   return 1;
}
 
// a > b
bool Larger(int a[], int b[])
{
   for (int i=0; i<N; i++)
    if(a[i] > b[i])
     return 1;
    else
     if (a[i]<b[i])
      return 0;
}
 
// a = a - b
void Minus(int a[], int b[])
{
   for (int i=N-1; i>=0;i--)
   {
      if(a[i]>=b[i])
       a[i] = a[i] - b[i];
      else
      {
        a[i]+=10;
        a[i] = a[i] - b[i];
        a[i-1]--;
      }
   }
}
 
// печать
void Print(int* a)
{
   int curr = 0;
   while (a[curr]==0)
    curr++;
 
   for (int i=curr; i<N; i++)
    cout <<a[i];
   cout << endl;
}
 
// основная функция
void main ()
{
   int A[N];
   int B[N];
 
   // инициализация массивов цифр
   for (int i=0; i<N; i++)
   {
      A[i] = rand%10;
      B[i] = rand%10;
   }
 
   cout << "A = ";
   Print(A);
 
   cout << "B = ";
   Print(B);
 
   // алгоритм Евклида
   while (!Equal(A,B))
   {
     if (Larger(A,B))
       Minus(A,B);
 
     else
       Minus(B,A);
 
     // cout << "A = ";
     // Print(A);
 
     // cout << "B = ";
     // Print(B);
   }
 
   cout << "NOD = ";
   Print(A);
 
   getchar();
   
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.12.2015, 18:10
Ответы с готовыми решениями:

Маска ввода для 5, 6 и 7-значных чисел с дефисами (ввод телефона)
Доброго времени суток! Кто может подсказать: для поля нужно построить такую маску ввода, чтобы можна было вводить п'яти-, шести- и...

Решето Эратосфена. Добавить ручной ввод количества простых чисел и вывод итога в файл
Помогите добавить возможность ручного ввода исходного количества используемых чисел (а то у меня программа автоматически использует только...

Ввод с клавиатуры, вместо программного ввода
Бойцы, есть код. Как сделать, что бы размер матрицы(количество строк и столбцов) я вписывал в консоли Собственноручно и что бы они...

6
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
21.12.2015, 18:22
считывать в строку ,потом в массив кидать переводя в цифры
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,238
21.12.2015, 19:00
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int Input(int*A,int N)
{
   int i=0;
   cout<<"Enter long number:";
   for (; i<N; i++)
   {
      A[i] =cin.get();
      if(A[i]>='0' && A[i]<='9')
        A[i]-='0';
      else if( A[i]=='\n')
         break;
      else
        A[i]=0; // считаем, что непередусмотренные символы соответствуют нулям
   }
   return i; // Возвращаем количество цифр в числе
}
0
0 / 0 / 0
Регистрация: 21.12.2015
Сообщений: 5
21.12.2015, 20:13  [ТС]
fo
C++
1
2
3
4
5
6
7
8
9
10
11
r (int i=0; i<N; i++)
   {
      A[i] = rand%10;
      B[i] = rand%10;
   }
 
   cout << "A = ";
   Print(A);
 
   cout << "B = ";
   Print(B);
проблема в том, что я не знаю, как организовать в данном куске ручной ввод именно 80-ти значных чисел, вместо автоматического
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,238
21.12.2015, 20:18
Laser_Head, А чем Вам не угодил предложенный мною вариант?
Не знаете как вызвать функцию?
C++
1
2
3
4
Input(A,N);
Print(A,N);
Input(B,N);
Print(B,N);
0
0 / 0 / 0
Регистрация: 21.12.2015
Сообщений: 5
21.12.2015, 20:47  [ТС]
я не знаю, куда вставить часть кода, предложенного вами)
0
Модератор
Эксперт С++
 Аватар для zss
13769 / 10962 / 6491
Регистрация: 18.12.2011
Сообщений: 29,238
21.12.2015, 20:57
Тик в тик вместо кода написанного Вами в предыдущем сообщении.
Исправьте только функции так, чтобы N передавалось во все функции как параметр.
И уберите #define N 80
а в main вставьте
C++
1
const int N=80;
Итого
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
#include <iostream>
using namespace std;
int Input(int*A,int N)
{
    int i=0;
    cout<<"Enter long number:";
    for (; i<N; i++)
    {
        A[i] =cin.get();
        if(A[i]>='0' && A[i]<='9')
            A[i]-='0';
        else if( A[i]=='\n')
            break;
        else
            A[i]=0; // считаем, что непередусмотренные символы соответствуют нулям
    }
    return i; // Возвращаем количество цифр в числе
}
 
// a = b
bool Equal(int* a, int* b,int N)
{
    for (int i=0; i<N; i++)
        if(a[i]!=b[i])
            return false;
    return true;
}
 
// a > b
bool Larger(int* a, int* b,int N)
{
    for (int i=0; i<N; i++)
        if(a[i] > b[i])
            return true;
    return false;
}
 
// a = a - b
void Minus(int* a, int* b,int N)
{
    for (int i=N-1; i>=0;i--)
    {
        if(a[i]>=b[i])
            a[i] = a[i] - b[i];
        else
        {
            a[i]+=10;
            a[i] = a[i] - b[i];
            a[i-1]--;
        }
    }
}
 
// печать
void Print(int* a, int N)
{
    int curr = 0;
    while (a[curr]==0 && curr<N)
        curr++;
 
    for (int i=curr; i<N; i++)
        cout <<a[i];
    cout << endl;
}
 
// основная функция
int main ()
{
    const int N=80;
    int A[N];
    int B[N];
 
    // инициализация массивов цифр
    Input(A,N);
    Print(A,N);
    Input(B,N);
    Print(B,N);
 
    // алгоритм Евклида
    while (!Equal(A,B,N))
    {
        if (Larger(A,B,N))
            Minus(A,B,N);
 
        else
            Minus(B,A,N);
 
        // cout << "A = ";
        // Print(A);
 
        // cout << "B = ";
        // Print(B);
    }
 
    cout << "NOD = ";
    Print(A,N);
 
    getchar();
   return 0;
 
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.12.2015, 20:57
Помогаю со студенческими работами здесь

Нюансы ввода/вывода: как правильно организовать ввод строки с пробелами?
Доброе время суток. Такой вопрос: у меня есть структура, содержащая ФИО, адрес, телефон, возраст. Хотелось, чтобы была возможность...

Организовать ввод строчных латинских букв до ввода точки. Напечатать все неповторяющиеся буквы
Организовать ввод строчных латинских букв до ввода точки. Напечатать все неповторяющиеся буквы. Алгоритм должен быть построен так,что бы...

Ввод в БД строк вместо чисел
Доброе время суток, столкнулся с такой проблемой, мне нужно ввести данные программу, в базе данных записаны их ключи, тоесть если я ввожу...

Организовать ввод с клавиатуры последовательности натуральных чисел
Помогите,плиз,ребята!! 1. Организовать ввод с клавиатуры последовательности натуральных чисел. Признаком конца ввода является ввод числа...

В цикле ввод чисел, после ввода каждого числа вычислить минимальное, максимальное и среднее для введенных чисел
В цикле ввод чисел. после ввода каждого числа вычислить минимально, максимальное и среднее для введенных чисел. ввод 0- выход из программы.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru