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

Даны натуральные числа a1,a2,.,an . Указать те из них, у которых остаток от деления на M равен L (0< L< M - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как создать массив или вектор размера больше чем 0x7fffffff? http://www.cyberforum.ru/cpp-beginners/thread1149675.html
Вопрос вот в чем.. максимальная разрядность сетки блоков нитей 2^31-1 на GPU (используя CUDA на видеокартах с Compute capability 3.0 и выше) (и все это типа float), что гораздо больше чем ограничения vector и new. чисто теоретически нужна возможность создать массив из 2^31-1 элементов типа float (а лучше матрицу с таким же разрешением по x,y,z,k). каким образом это можно сделать? //пробовал...
C++ Распечатать результат в порядке возрастания Написал код, вроде работает, единственная проблема, нужно, чтобы результат выводился в порядке возрастания, но я не знаю как это сделать...помогите пожалуйста, завтра уже сдать нужно...#include "stdafx.h" #include "conio.h" int main() { unsigned int lenthOfArray=0; //переменная длины массива scanf ("%d", &lenthOfArray); //считываем длину массива if (... http://www.cyberforum.ru/cpp-beginners/thread1149652.html
C++ Программа не заходит в цикл
Здравствуйте, подскажите пожалуйста в чем проблемма #include <cstdio> #include <cstdlib> #include <conio.h> #include <iostream> int main() { int N = 6; int *X = new int;
C++ Ошибка при попытке разыменовать указатель, который размещен в динамической памяти другим процессом
Доброго времени суток. Есть родительский процесс, он запускает через createProcess дочерний процесс, передавая ему в командной строке адрес указателя. Внутри дочернего процесса int resultAdresss = atoi(argV); int * result = reinterpret_cast<int *>(resultAdresss); cout << *result << endl; // здесь вылетает предупреждение Windows о том что процесс завершен Адреса указателей...
C++ Нахождение строки матрицы с неотрицательными элементами http://www.cyberforum.ru/cpp-beginners/thread1149621.html
Нужно найти номер первой строки с неотрицательными элементами,подскажите, что тут не правильно написал.. #include "stdafx.h" #include <iostream> #include "cmath" using namespace std;
C++ Описать структуру с именем NAL, содержащую указанные поля 27) Описать структуру с именем NAL, содержащую следующие поля: □ название плательщика; □ ИНН плательщика; □ вид налога; □ сумма платежа; подробнее

Показать сообщение отдельно
bav1003
0 / 0 / 1
Регистрация: 11.04.2014
Сообщений: 3
16.04.2014, 02:11     Даны натуральные числа a1,a2,.,an . Указать те из них, у которых остаток от деления на M равен L (0< L< M
Вообще-то не очень понятно, что означает "сделать через функцию". Функции в программировании - это средство, а не цель. В виде функций обычно пишут код, чтобы не дублировать его в разных местах программы, либо для улучшения восприятия логики программы на разных уровнях. То есть функции в программе появляются либо "сами по себе" - для удобства решения данной задачи и тех задач, в которые данная задача может "вырасти", либо по тех.заданию - то есть, должны быть заданы заказчиком, преподавателем и т.д.
В этой задаче, по-видимому, можно написать, что-то вроде
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
// Функция для ввода параметров деления
bool getParam(int& dev,int& rem) {
    cout << " Введите делитель: ", cin >> dev;
    cout << " Введите остаток: ", cin >> rem;
    if ((dev >= 0) && (rem <= dev - 1))
        return true;
    else
        return false;
}
// Функция, решающая основную задачу нахождения чисел ...
// Возвращает количество найденных чисел
int getNumbers(int *a,int n,int dev,int rem,int *r) {
int m=0;
    for(int i=0;i<n;i++) {
        if(a[i]%dev==rem) {
            r[m++]=a[i];
        }
    }
return m;
}
// Функция для печати массива
void printArray(int *a,int size) {
    for(int i = 0; i < size; i++) {
        cout << a[i] << endl;
    }
}
Тогда часть функции main можно будет записать с использованием введенных функций, например, в виде
C++
1
2
3
4
5
6
7
8
9
10
    while(!getParam(m,l)) {
        cout << "Неправильные данные blah, blah..." << endl;
    }
    int res[n],r;
    if((r = getNumbers(a,n,m,l,res)) > 0) {
        cout << " Числа, которые от деления на " << m << " дают остаток " << l <<endl;
        printArray(res,r);
    } else {
        cout << "Таких чисел в массиве нет:" << endl;
    }
Да, еще.(Не могу молчать .)У Вас в программе распространенная ошибка новичков в C/C++:
C++
1
2
3
4
5
6
7
8
 int a[n], l, m,i;
    cout << " Введите элементы массива:" << endl;
    for (i = 1; i <= n; i++)
    {
        cout << " a[" << i << "] = ";
        cin >> a[i];
 
    }
Элементы массивов в C/C++ нумеруются с нуля, то есть правильно заголовок этого цикла записать в виде:
C++
1
  for (i = 0; i < n; i++)
Подробнее об этом в учебниках. Это такой "баян"...
 
Текущее время: 03:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru