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

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

21.12.2015, 18:10. Показов 933. Ответов 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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru