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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dimkachel
6 / 1 / 1
Регистрация: 18.11.2009
Сообщений: 172
#1

Одномерный массив В из номеров положительных элементов массива А - C++

19.06.2012, 20:59. Просмотров 542. Ответов 12
Метки нет (Все метки)

Помогите сформировать одномерный массив В из номеров положительных элементов массива А.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2012, 20:59     Одномерный массив В из номеров положительных элементов массива А
Посмотрите здесь:
C++ Дан одномерный массив состоящий из N целочисленных элементов. Вычислить сумму положительных элементов массива кратных 3
Ввести одномерный массив А, вывести его. Вычислить среднее геометрическое положительных элементов массива C++
Сформировать одномерный массив Х из положительных элементов матрицы А, найти минимальный элемент массива Х и его номер C++
C++ Составить одномерный массив номеров строк двумерного массива
Составить одномерный массив из номеров строк двумерного массива C++
C++ Вычисление суммы и определение номеров положительных элементов массива
Сформировать одномерный массив из номеров первых отрицательных элементов каждой строки матрицы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
19.06.2012, 21:09     Одномерный массив В из номеров положительных элементов массива А #2
C++
1
2
3
4
5
6
for (int i = 0; i < n; i++)
           if ( a[i] > 0) 
            {
              b[k] = i;  
              k++;
             }
как то так =)
dimkachel
6 / 1 / 1
Регистрация: 18.11.2009
Сообщений: 172
19.06.2012, 21:27  [ТС]     Одномерный массив В из номеров положительных элементов массива А #3
bLesk, можно ли подробнее.
А то сделал как то но не работает:
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
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <stdlib.h>  //указатели
#include <iostream>
using namespace std;
 
void _tmain()       
{
int arr[1000],n,b[1000],k;
    setlocale(LC_ALL,"Russian");
    cout<<"\nВведите разрядность массива А: \n";
    cin >> n;
    for (int i = 0; i < n; i++) //цикл
        {
        arr[i] = rand()%100;       //i-тому элементы присваивается число от 0 до 99
        cout << arr[i] <<" "; 
        }
    for (int i = 0; i < n; i++)
           if ( arr[i] > 0) 
            {
              b[k] = i;  
              cout <<"Массив В: "<<b[k] <<" ";
              k++;            
             }
    _getch();
}
bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
19.06.2012, 22:10     Одномерный массив В из номеров положительных элементов массива А #4
C++
1
k=0
когда инициализируете k, хорошо бы ему присвоить значение 0, тогда массив b будет с нуля отсчитываться, а не откуда попало. И да, не забывайте что у массива нумерация идет с 0, поэтому чтобы не запутаться, в массив b можно не i класть, а i+1, так понятней будет. (например число с номером в массиве 5, фактически будет под номером 4 ведь нумерается не с 1 а с 0)

Добавлено через 8 минут
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
#include<iostream>
#include<cstdlib>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int *A, *B, size, pos=0; 
    cout<<"Введите размер массива А : "<<endl;
    cin>>size;
    A = new int[size];
    B = new int[size];
    cout<<"Заполните массив : "<<endl;
    for (int i = 0; i < size; i++)
        cin>>A[i];
    for (int i = 0; i < size; i++)
        if (A[i] > 0)
            {
                B[pos]=i+1;
                pos++;
            }
    for (int i = 0; i < pos; i++)
        cout<<" "<<B[i];
    cout<<endl;
    system("pause");
}
Добавлено через 43 секунды
ах да, ещё delete [] A и delete[] B нужно )
dimkachel
6 / 1 / 1
Регистрация: 18.11.2009
Сообщений: 172
19.06.2012, 22:18  [ТС]     Одномерный массив В из номеров положительных элементов массива А #5
bLesk, Спасибо конечно, но я хотел с массивом из случайных чисел, и желательно что бы попадались в нем не положительные числа.
Пример с назначенным пользователем массивом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <stdlib.h>  
#include <iostream>
using namespace std;
 
void _tmain()       
{
    int a[5],i;
    setlocale(LC_ALL,"Russian");
    cout<<"\nВведите массив из 5 элементов:\n";
    for(i=0;i<5;i++)
        cin>>a[i];
    cout<<"Массив В : ";
    for (int i = 0; i < 5; i++)
           if ( a[i] > 0) 
               cout<< i <<" ";
    _getch();
}
С массивом из случайных чисел (но почему то без не положительных чисел):
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 "stdafx.h"
#include <conio.h>
#include <math.h>
#include <stdlib.h>  //указатели
#include <iostream>
using namespace std;
 
void _tmain()       
{
int arr[100],n,p;
    setlocale(LC_ALL,"Russian");
    cout<<"\nВведите разрядность массива А: \n";
    cin >> n;
    cout <<"Массив A: ";
    
    for (int i = 0; i < n; i++) //цикл
        {
        arr[i] = rand()%100;       //i-тому элементы присваивается число от 0 до 99
        cout << arr[i] <<" ";
        }
    cout <<"Массив В: ";
    for (int i = 0; i < n; i++)
    {
            if ( arr[i] > 0)
                p=i+1;
            cout << p<<" ";
    }
    _getch();
}
bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
19.06.2012, 22:21     Одномерный массив В из номеров положительных элементов массива А #6
а откуда у вас появятся отрицательные числа? если вы их генерируете от 0 до 99
dimkachel
6 / 1 / 1
Регистрация: 18.11.2009
Сообщений: 172
19.06.2012, 22:25  [ТС]     Одномерный массив В из номеров положительных элементов массива А #7
bLesk, я только учусь, вот и спрашиваю.
а как тогда его заполнить не только положительными?
bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
19.06.2012, 22:28     Одномерный массив В из номеров положительных элементов массива А #8
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
#include<iostream>
#include<cstdlib>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int *A, *B, size, pos=0; 
    cout<<"Введите размер массива А : "<<endl;
    cin>>size;
    A = new int[size];
    B = new int[size];
    for (int i = 0; i < size; i++)
        A[i]=rand()%10 - 5;
    cout<<"Массив А : "<<endl;
    for (int i = 0; i < size; i++)
        cout<<" "<<A[i];
    for (int i = 0; i < size; i++)
        if (A[i] > 0)
            {
                B[pos]=i+1;
                pos++;
            }
    cout<<endl<<"Массив В : "<<endl;
    for (int i = 0; i < pos; i++)
        cout<<" "<<B[i];
    cout<<endl;
        delete []A;
        delete []B;
    system("pause");
}
Добавлено через 2 минуты
блин опять забыл про delete..
dimkachel
6 / 1 / 1
Регистрация: 18.11.2009
Сообщений: 172
19.06.2012, 22:29  [ТС]     Одномерный массив В из номеров положительных элементов массива А #9
Вот спасибо!
вот что получилось:
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
#include "stdafx.h"
#include <conio.h>
#include <math.h>
#include <stdlib.h>  //указатели
#include <iostream>
using namespace std;
 
void _tmain()       
{
int arr[100],n,p;
    setlocale(LC_ALL,"Russian");
    cout<<"\nВведите разрядность массива А: \n";
    cin >> n;
    cout <<"Массив A: ";
    
    for (int i = 0; i < n; i++) //цикл
        {
        arr[i] = rand()%100 -50;       //i-тому элементы присваивается число от 0 до 99
        cout << arr[i] <<" ";
        }
    cout <<"Массив В: ";
    for (int i = 0; i < n; i++)
    {
            if ( arr[i] > 0)
            {
                p=i+1;
                cout << p<<" ";
            }
    }
    _getch();
}
У меня , как добавил delete []arr; поперли ошибки ((
bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
19.06.2012, 22:33     Одномерный массив В из номеров положительных элементов массива А #10
вы выводите просто номера положительных элементов в массиве А. а по условию вам нужно их выводить из другого массива В, мне конечно без разницы, если это не суть.
но всё таки по чесноку было бы не
C++
1
p=i+1
а
C++
1
2
b[k]=i+1
k++
и потом через цикл for выводить массив b[k]
MrGluck
Модератор
Эксперт CЭксперт С++
7178 / 4344 / 634
Регистрация: 29.11.2010
Сообщений: 11,828
19.06.2012, 22:33     Одномерный массив В из номеров положительных элементов массива А #11
C++
1
2
3
4
5
void _tmain()  
int arr[100]
cin >> n;
for (int i = 0; i < n; i++)
arr[i]
Хреново получилось как-то. А если я введу 101? Используйте динамический массив.

И пишите int main()
bLesk
41 / 41 / 1
Регистрация: 24.11.2009
Сообщений: 165
19.06.2012, 22:36     Одномерный массив В из номеров положительных элементов массива А #12
ну в своем примере я как раз и сделал динамический, и main тоже int, но по всей видимости автор ещё не добрался до динамических массивов)

Добавлено через 1 минуту
Цитата Сообщение от dimkachel Посмотреть сообщение
У меня , как добавил delete []arr; поперли ошибки ((
ну так у вас нет динамического массива, он у вас статический. а в моем примере динамический
у вас
C++
1
int arr[100]
а у меня
C++
1
2
int *A;
A=new int[n]
поэтому мне нужно ещё очищать выделенную память командой delete(а в случае со статическим массивом этого делать не нужно)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 22:42     Одномерный массив В из номеров положительных элементов массива А
Еще ссылки по теме:
C++ Составить одномерный массив B из номеров строк двумерного массива, в которых есть хотя бы одно нечетное число
Одномерный массив. Создать массив Х суммы среднеарифметического элементов массива А с каждым элементом массива А C++
C++ Создать массив из номеров нулевых элементов исходного массива
Создать массив из номеров ненулевых элементов заданного массива C++
C++ Одномерный массив, подсчитать число положительных, отрицательных и нулевых элементов

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

Или воспользуйтесь поиском по форуму:
dimkachel
6 / 1 / 1
Регистрация: 18.11.2009
Сообщений: 172
19.06.2012, 22:42  [ТС]     Одномерный массив В из номеров положительных элементов массива А #13
MrGluck, при nt main() почему то не работает ничего, я только начинаю, может чего нить не знаю.

Добавлено через 4 минуты
Цитата Сообщение от bLesk Посмотреть сообщение
вы выводите просто номера положительных элементов в массиве А. а по условию вам нужно их выводить из другого массива В, мне конечно без разницы, если это не суть.
Я думаю в данном случае главное результат. Ну а по чесноку, то да, надо загонять в массив.
Yandex
Объявления
19.06.2012, 22:42     Одномерный массив В из номеров положительных элементов массива А
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru