Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Shcolnik
4 / 4 / 2
Регистрация: 19.11.2013
Сообщений: 89
1

Массивы, адресация, дин. исп памяти

02.12.2014, 18:18. Просмотров 186. Ответов 1
Метки нет (Все метки)

Задача:Заданы два массива А(5) и В(5). Подсчитать в них количество положительных элементов и первым на печать вывести массив, имеющий наибольшее их количество.
Сделал как то так, в чем может быть ошибка, а если она не одна исправьте пожалуйста.
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
#include "stdafx.h"
#include <stdlib.h>
#include <time.h>
#include<iostream>
#include <cstdlib>
using namespace std;
int **CreateArray(int n)
{
    int** arr = new int*[n];
    for (int i = 0; i<n; i++)
        arr[i] = new int[n];
    return arr;
}
void DeleteArray(int** mas, int n)
{
    for (int i = 0; i < n; i++)
        delete[] mas[i];
    delete[] mas;
}
int RandomArray(int **mas, int n, int rand_min, int rand_max)
{
    for (int i = 0; i<n; i++)
        *mas[i] = rand_min + rand() % (rand_max - rand_min + 1);
    return **mas;
}
void PrintArray(int **mas, int n)
{
    for (int i = 0; i < n; i++)
    {
        std::cout << mas[i] << '\t';
        cout << endl;
    }
}
int main()
{
    setlocale(LC_ALL, "Russian");
    srand((unsigned)time(NULL));
    int n;
    int **mas;
    int **mas1;
    int **mas2;
    int i1 = 0;
    int i2 = 0;
    cout << "n = ";
    cin >> n;
    mas1 = CreateArray(n);
    mas2 = CreateArray(n);
    RandomArray(mas1, n, -100, 100);
    RandomArray(mas2, n, -100, 100);
    PrintArray(mas1, n);
    PrintArray(mas2, n);
        for (int i = 0; i < mas1->n; i++)
        {
            if (mas1->mas[i] > 0)
                i1++;
        }
        for (int i = 0; i < mas2->n; i++)
        {
            if (mas2->mas[i] > 0)
                i2++;
        }
 
        if (i1 >= i2)
        {
            return mas1;
        }
        else return mas2;
    DeleteArray(mas1, n);
    DeleteArray(mas2, n);
    system("PAUSE");
}
Почему подчеркивает mas1 и mas2 в это месте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (int i = 0; i < mas1->n; i++)
        {
            if (mas1->mas[i] > 0)
                i1++;
        }
        for (int i = 0; i < mas2->n; i++)
        {
            if (mas2->mas[i] > 0)
                i2++;
        }
 
        if (i1 >= i2)
        {
            return mas1;
        }
        else return mas2;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2014, 18:18
Ответы с готовыми решениями:

Выделение дин. памяти
Динамически (в темпе :3) выделяю динамическую память для двухмерного массива...

Дин. массивы. Матрицы
Доброго времени суток) Нужно сделать 2 задачки с обязательным использование...

Дин. выделение памяти, конструкторы/деструкторы
Хотел бы уточнить. 1) Чем отличается это: int main() { int value = 0;...

Адресация памяти
Добрый день, друзья. Начав изучать такую замечательную вещь, как...

Сегментная адресация памяти
Здравствуйте, читаю небольшой материал про процессор 8086 и появившийся в нем...

1
zss
Модератор
Эксперт С++
7378 / 6778 / 4290
Регистрация: 18.12.2011
Сообщений: 17,913
Завершенные тесты: 1
02.12.2014, 18:42 2
Цитата Сообщение от Shcolnik Посмотреть сообщение
Заданы два массива А(5) и В(5)
А при чем тут двумерные массивы?
Цитата Сообщение от Shcolnik Посмотреть сообщение
mas1->mas[i]
Что это за странный синтаксис?
Получается, что mas1 должно быть указателем на структуру,
которая содержит массив mas
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2014, 18:42

Стандарт. По УМОЛЧАНИЮ при дин. выделении, если не хватает памяти, вызывается NULL или bad_alloc?
По УМОЛЧАНИЮ при динамическом выделении, если не хватает памяти, возвращается...

Адресация переменных и всей структуры программы на реальной памяти в ОС
Доброго времени суток, Вопрос по памяти, не совсем понятно: 1. Я написал...

Массивы в памяти
Помогите прояснить один момент! Определяем в программе int ar1; char c;...


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

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

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