Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
dimkachel
6 / 1 / 2
Регистрация: 18.11.2009
Сообщений: 172
1

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

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

Помогите сформировать одномерный массив В из номеров положительных элементов массива А.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2012, 20:59
Ответы с готовыми решениями:

Дан одномерный массив состоящий из N целочисленных элементов. Вычислить сумму положительных элементов массива кратных 3
если не сложно помогите 1)дана функция y=0.5+sin(5x), причем х изменяется от...

Ввести одномерный массив А, вывести его. Вычислить среднее геометрическое положительных элементов массива
Ввести одномерный массив A , вывести его. Вычислить SRG-среднее геометрическое...

Сформировать одномерный массив Х из положительных элементов матрицы А, найти минимальный элемент массива Х и его номер
Доброго всем времени суток) никак не могу создать массив из матрицы( кто...

Составить одномерный массив номеров строк двумерного массива
Дан двухмерный целочисленный массив А(N,M). Составить одномерный массив В...

Составить одномерный массив из номеров строк двумерного массива
Помогите написать программу! Дан двухмерный целочисленный массив А(M,N)....

12
bLesk
42 / 42 / 8
Регистрация: 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++;
             }
как то так =)
0
dimkachel
6 / 1 / 2
Регистрация: 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();
}
0
bLesk
42 / 42 / 8
Регистрация: 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 нужно )
0
dimkachel
6 / 1 / 2
Регистрация: 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();
}
0
bLesk
42 / 42 / 8
Регистрация: 24.11.2009
Сообщений: 165
19.06.2012, 22:21 6
а откуда у вас появятся отрицательные числа? если вы их генерируете от 0 до 99
0
dimkachel
6 / 1 / 2
Регистрация: 18.11.2009
Сообщений: 172
19.06.2012, 22:25  [ТС] 7
bLesk, я только учусь, вот и спрашиваю.
а как тогда его заполнить не только положительными?
0
bLesk
42 / 42 / 8
Регистрация: 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..
1
dimkachel
6 / 1 / 2
Регистрация: 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; поперли ошибки ((
0
bLesk
42 / 42 / 8
Регистрация: 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]
0
MrGluck
Модератор
Эксперт CЭксперт С++
8084 / 4941 / 1431
Регистрация: 29.11.2010
Сообщений: 13,392
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()
0
bLesk
42 / 42 / 8
Регистрация: 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(а в случае со статическим массивом этого делать не нужно)
0
dimkachel
6 / 1 / 2
Регистрация: 18.11.2009
Сообщений: 172
19.06.2012, 22:42  [ТС] 13
MrGluck, при nt main() почему то не работает ничего, я только начинаю, может чего нить не знаю.

Добавлено через 4 минуты
Цитата Сообщение от bLesk Посмотреть сообщение
вы выводите просто номера положительных элементов в массиве А. а по условию вам нужно их выводить из другого массива В, мне конечно без разницы, если это не суть.
Я думаю в данном случае главное результат. Ну а по чесноку, то да, надо загонять в массив.
0
19.06.2012, 22:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 22:42

Вычисление суммы и определение номеров положительных элементов массива
Задан массив целых чисел из 10 элементов.Программа вычисляет сумму положит....

Сформировать одномерный массив из номеров первых отрицательных элементов каждой строки матрицы
Дана матрица А размерностью n*m. Сформировать одномерный массив В, элементами...

Составить одномерный массив B из номеров строк двумерного массива, в которых есть хотя бы одно нечетное число
Здравствуйте, помогите написать программу, условие задачи: Дан двумерный...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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