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

Даны целые числа A, B. Выбрать из отрезка [A,B] все нечетные положительные числа и составить из них массив

03.04.2019, 19:39. Показов 2195. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите разобраться, не могу понять как считать размер массива.
Даны целые числа A, B. Выбрать из отрезка [A,B] все нечетные положительные числа и составить из них массив.
для хранения массива выделять ровно столько памяти, сколько необходимо для хранения получившегося количества элементов.
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
//main.cpp
#include <iostream>
#include "vect.h"
 
using namespace std;
 
int main()
{
    int a,b,n;
    cout<<"Please enter A(int):";
    cin>>a;
    cout<<"Please enter B(int):";
    cin>>b;
 
    double *v = new double[n];
    n=(b-a+1)/2;
    Sort(v,a,b);
 
    cout<<"the vector sized:"<<n<<endl;
 
 
    cout<<"Vector v:\t";
    OutputDescVect(v,n);
 
    delete []v; v=NULL;
}
//vect.cpp
#include <iostream>
#include <iomanip>
#include "vect.h"
 
using namespace std;
 
//function for input vector from screen
 
void InputDescVect(double* v,int n)
{
    int i;
    cout<<"\n Please enter the vector (double) sized "<<n<<":"<<endl;
 
    for (i=0; i<n; i++)
    {
        cout<<"< "<<i<<" > ";
        cin>>v[i];
        cout<<endl;
    }
 
}
 
//function for output vector on screen
 
void OutputDescVect(double* v,int n)
{
    int i;
    cout.precision(2);
 
    for(i=0; i<n; i++)
        cout<<setw(15)<<v[i];
    cout<<endl<<endl;
}
 
void Sort (double* v,int A, int B)
{
    int i,k=0;
    for (i=A;i<=B;i++)
    {
        if(i%2==1&&i>0)
        {
            v[k-1]=i;
            k++;
        }
    }
}
 
//vect.h
#ifndef VECT_H_INCLUDED
#define VECT_H_INCLUDED
 
void InputDescVect(double* v,int n);
void OutputDescVect(double* v,int n);
void Sort (double* v,int A, int B);
#endif // VECT_H_INCLUDED
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.04.2019, 19:39
Ответы с готовыми решениями:

Даны целые положительные числа A и B (A < B). Вывести все целые числа от A до B включительно; при этом каждое
Даны целые положительные числа A и B (A &lt; B). Вывести все целые числа от A до B включительно; при...

Даны целые положительные числа а1, а2, ., an. Найти среди них те, которые являются квадратами некоторого числа m
Даны целые положительные числа а1, а2, ..., an. Найти среди них те, которые являются квадратами...

Даны целые положительные числа аь а2,., а„. Найти среди них те, которые являются квадратами некоторого числа т
Упорядочить по возрастанию элементы каждой строки мат рицы размером пхт. Дана строка....

Даны целые положительные числа a1, a2, ..., аn. Найти среди них те, которые являются квадратами некоторого числа m.
Даны целые положительные числа a1, a2, ..., аn. Найти среди них те, которые являются квадратами...

10
Злостный нарушитель
 Аватар для Verevkin
9694 / 5254 / 1198
Регистрация: 12.03.2015
Сообщений: 24,751
03.04.2019, 19:49 2
Зачем тип double в этой задаче? Чо за левый кусок исходника?
0
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 41
03.04.2019, 19:57  [ТС] 3
Verevkin, double для массива используется, и что в исходнике неправильно?
0
Злостный нарушитель
 Аватар для Verevkin
9694 / 5254 / 1198
Регистрация: 12.03.2015
Сообщений: 24,751
03.04.2019, 20:00 4
Цитата Сообщение от Анна161097 Посмотреть сообщение
double для массива используется
Это противоречит условию задачи.
Цитата Сообщение от Анна161097 Посмотреть сообщение
что в исходнике неправильно?
Не знаю. Я его не читал по причине, описанной выше.
0
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 41
03.04.2019, 20:11  [ТС] 5
Verevkin, если поменять на int, то результат все равно не верный, это не сильно влияет
0
Злостный нарушитель
 Аватар для Verevkin
9694 / 5254 / 1198
Регистрация: 12.03.2015
Сообщений: 24,751
03.04.2019, 20:15 6
Цитата Сообщение от Анна161097 Посмотреть сообщение
если поменять на int, то результат все равно не верный, это не сильно влияет
Но уже не противоречит условию задачи.
Прогресс на лицо.
0
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 41
03.04.2019, 20:28  [ТС] 7
Verevkin, и что с размером массива сделать? находит числа по условию вроде правильно, а выводит не совсем то что нужно
0
33 / 22 / 12
Регистрация: 13.09.2017
Сообщений: 74
03.04.2019, 20:29 8
Лучший ответ Сообщение было отмечено Анна161097 как решение

Решение

Во-первых,
C++
1
v[k - 1] = i;
Это неправильная запись. Массивы в С++ индексируются всегда с нуля, а так как у вас k = 0, то у вас может выполниться запись в ячейку -1
Исправьте просто на
C++
1
v[k] = i;
Второе,
C++
1
i % 2 != 1
Это условие не проверяет нечетность. Оно фактически говорит "если остаток от деления на 2 не равен 1, то записать". Это соответствуют четным числам, не нечетным. Для нечетных это условие выглядит так:
C++
1
i % 2 != 0
И третье,
C++
1
2
double *v = new double[n];
n = (b - a + 1)/2;
Это конечно неправильно. В переменной n до инициализации хранится мусор, и вы создаете динамический массив непонятного размера. Нужно СНАЧАЛА определить переменную n, а только потом создать массив с размерностью, которая этой переменной соответствует. Поменяйте эти две строчки местами.

Больше ошибок вроде не увидел
1
Злостный нарушитель
 Аватар для Verevkin
9694 / 5254 / 1198
Регистрация: 12.03.2015
Сообщений: 24,751
03.04.2019, 20:33 9
Цитата Сообщение от Анна161097 Посмотреть сообщение
и что с размером массива сделать?
я думаю.
0
Злостный нарушитель
 Аватар для Verevkin
9694 / 5254 / 1198
Регистрация: 12.03.2015
Сообщений: 24,751
03.04.2019, 21:11 10
У меня вот так получилось:

Даны целые числа A, B. Выбрать из отрезка [A,B] все нечетные положительные числа и составить из них массив


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// код кривой, оптимизировать влом, я устал. Но работает.
int* select(int A, int B, unsigned &count)
{
  if (A < 0) A = 0;
  if (A > B) return select(B, A, count);
  
  count = 0;
  if (!A && !B) return NULL;
  
  A += !(A & 1);
  B -= !(B & 1);
  count = 1 + ((B - A) >> 1);
  
  int* result = new int[count];
  for (unsigned idx = 0; idx != count; idx++, A += 2) result[idx] = A;
  return result; // не забудь вернуть память ВЗАД.
}
1
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
03.04.2019, 21:32 11
Анна161097, считал, что A<B, B>0; если A>B внесите дополнительные строки.
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
#include <iostream> 
using namespace std;
 
int main()
{
    int A, B, n=0, m=0;
    cout << "Enter integer limits:\n";
    cout<< "A="; cin >> A;
    cout<< "B="; cin >> B;
    
    if (A<=0) A=1;
    if (A%2==0) A++;
 
    for (int i = A; i <= B; i+=2)
    n++;
    
    int*a = new int[n];
    
    for (int i = A; i <= B; i+=2)
    a[m++]=i;    
    
    for (int i = 0; i < n; i++)
      cout << a[i] << " ";
      cout << "\n";   
    
    delete[]a;
system("pause");
return 0;
}
0
03.04.2019, 21:32
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.04.2019, 21:32
Помогаю со студенческими работами здесь

Даны целые положительные числа A и B (A < B). Вывести все целые числа от A до B включительно
Даны целые положительные числа A и B (A &lt; B). Вывести все целые числа от A до B включительно; при...

Даны целые числа, удалить все числа со значением максимального из них
Даны целы числа х1,...,xn . удалить все числа со значением max(х1,...,xn) Не могу найти ошибку......

Даны целые числа а1,а2,.,ан (среди них могут быть повторяющиеся). Получить все числа, взятые по одному раз из каждой группы равных членов
Даны целые числа а1,а2,...,аn Получить все числа, взятые по одному раз из каждой группы равных...

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как обучить нейросеть создания картинок на Python
bytestream 24.01.2025
В эпоху цифровых технологий искусственный интеллект становится неотъемлемой частью творческого процесса. Особое место в этой области занимает разработка и обучение нейронных сетей для создания. . .
Как обучить нейросеть генерации текста на Python
bytestream 24.01.2025
В современном мире искусственный интеллект и машинное обучение становятся неотъемлемой частью многих технологических решений. Одной из наиболее интересных и востребованных задач в этой области. . .
Машинное обучение на Python
bytestream 24.01.2025
Введение в машинное обучение на Python Машинное обучение представляет собой одну из наиболее динамично развивающихся областей информационных технологий, которая позволяет компьютерным системам. . .
Как удалить вирус-майнер с компьютера
hw_wired 24.01.2025
Вирусы-майнеры стали одной из наиболее серьезных угроз для пользователей компьютеров. Эти вредоносные программы тайно используют вычислительные ресурсы зараженного устройства для добычи криптовалюты. . .
Что такое веб-сервер, для чего он нужен и как работает
bytestream 24.01.2025
В современную эпоху цифровых технологий веб-сервер является фундаментальным компонентом интернет-инфраструктуры, обеспечивающим функционирование множества онлайн-сервисов и веб-сайтов. Этот. . .
Как в цикле for перебрать все элементы в словаре в Python
bytestream 24.01.2025
Словари в Python представляют собой мощные структуры данных, которые позволяют хранить информацию в формате ключ-значение. Эта особенность делает их незаменимыми при работе с данными, где требуется. . .
Как отменить rebase в Git
hw_wired 24.01.2025
Git rebase представляет собой мощный инструмент для управления историей коммитов в системе контроля версий Git. Этот механизм позволяет разработчикам изменять последовательность, комбинировать или. . .
Как поменять цвет input placeholder с помощью CSS
bytestream 24.01.2025
В веб-разработке оформление элементов пользовательского интерфейса играет ключевую роль в создании привлекательного и интуитивно понятного дизайна. Особое внимание уделяется формам ввода данных, где. . .
Как перебрать все значения в перечислении (enum) в C#
bytestream 24.01.2025
Перечисление (enum) в языке программирования C# представляет собой специальный тип данных, который позволяет определить набор именованных констант. Этот мощный инструмент особенно полезен, когда. . .
Как обойтись без проверки на null, чтобы избежать NullPointerExce­ption в Java
bytestream 24.01.2025
NullPointerException (NPE) является одним из самых распространенных исключений в Java, создающих серьезные проблемы при разработке программного обеспечения. Данное исключение возникает при попытке. . .
Что лучше использовать в href ссылок в JavaScript: "#" или "javascript:voi­­d(0)­"
bytestream 24.01.2025
При разработке веб-приложений важную роль играет правильное использование HTML-ссылок в сочетании с JavaScript. Одним из ключевых аспектов является выбор корректного значения атрибута href для. . .
Как узнать индекс элемента списка по его значению в Python
hw_wired 24.01.2025
При работе с коллекциями данных в Python часто возникает необходимость не только манипулировать элементами списка, но и определять их точное местоположение. Индекс элемента представляет собой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru