Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
21 / 4 / 2
Регистрация: 05.07.2015
Сообщений: 126

Динамические массивы, как отобразить в switch условие, если функция возвращает 0

21.09.2015, 12:53. Показов 645. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, если стоит условие, что при некорректно введенных данных, а именно элементов массива - вернуть NULL, как это осуществить, у меня в принципе все корректно работает кроме данного условия, Заранее спасибо.
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include<iostream>
#include<stdlib.h>
#include<ctime>
int** CreateAnArray(int raw, int col);
void InPut(int**A, int raw, int col);
void OutPut(int**A, int raw, int col);
int** CutRowsOfArray(int**T,int &row, int col, int CutRows, int*IndsForCuts=NULL);
using namespace std;
int main()
{
    srand(time(NULL));
    int raw, col;
    cout<<"Please enter size of raws and colomns:\n";
    cin>>raw>>col;
 
    int**X=CreateAnArray(raw, col);
    InPut(X, raw, col);
    OutPut(X, raw, col);
    int CutRaws;
    bool Ok=false;
    while (!Ok)
    {
        cout<<"Please enter quantity of raws to be cutted:\t";
        cin>>CutRaws;
        if (CutRaws>raw)
            Ok=false;
        else
            Ok=true;
    }
    enum Indexes{Enter=1, No=2};
    cout<<"\nIf you wish to enter indices of rows to be deleted please press = 1, if not- press 2 ";
    int key;
    cin>>key;
    int *IndsforCuts=new int[CutRaws];
    switch(key)
    {
    case Enter:
        cout<<"Please enter indexces of raws to be cutted:\n ";
        for(int i=0; i<CutRaws; i++)
            cin>>IndsforCuts[i];
        X=CutRowsOfArray(X, raw, col, CutRaws, IndsforCuts);
        break;
    case No:
        X=CutRowsOfArray(X, raw, col, CutRaws);
        break;
    }
    OutPut(X, raw, col);
}
int** CreateAnArray(int row, int col)
{
    int**A=new int*[row];
    for(int i=0; i<row; i++)
    {
        A[i]=new int[col];
    }
    return A;
}
void InPut(int**A, int row, int col)
{
    for(int i=0; i<row; i++)
    {
        for(int j=0; j<col; j++)
            A[i][j]=1+rand()%10;
    }
}
void OutPut(int**A, int row, int col)
{
    for(int i=0; i<row; i++)
    { 
        if(A[i])
        {
        for(int j=0; j<col; j++)
            cout<<A[i][j]<<"\t";
        }
        cout<<"\n";
    }
}
int** CutRowsOfArray(int**T,int &row, int col, int CutRows, int*IndsForCuts)
{
    if(IndsForCuts==NULL)
    {
        for(int i=0, j=row-CutRows; i<row; i++)
        {
            if(j==i)
            {
                delete []T[i];
                T[i]=NULL;
                j++;
            }
        }
        OutPut(T, row, col);
        cout<<"\n\n Array to be returned:\n";
 
        int **A=new int*[row-CutRows];
        for(int i=0, j=0; i<row; i++)
        {
            if(T[i])
                A[j++]=T[i];
        }
        row-=CutRows;
 
    delete [] T;
    T=A;
    return T;
    }
 
    for(int i=0, j=0; i<row; i++)
    {
        if(IndsForCuts[j]>i)
            return 0;
        if(IndsForCuts[j]==i)
        {
            delete []T[i];
            T[i]=NULL;
            j++;
        }
    }
    OutPut(T, row, col);
    cout<<"\n\n Array to be returned:\n";
 
    int **A=new int*[row-CutRows];
    for(int i=0, j=0; i<row; i++)
    {
        if(T[i])
            A[j++]=T[i];
    }
    row-=CutRows;
 
    delete [] T;
    T=A;
    return T;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.09.2015, 12:53
Ответы с готовыми решениями:

Как должно выглядеть условие, если перед ним расположена функция?
Здравствуйте. Подскажите, пожалуйста, каким образом нужно изменить скрипт, чтобы можно было работать с условием &quot;если то&quot; для...

Как импортировать вызываемую из dll функцию, если эта функция возвращает значение типа ppchar
Подскажите, пожалуйста, как в с# импортировать вызываемую из dll функцию, если эта функция возращает значение типа ppchar, или вернее...

Зачем нужны обычные массивы, если есть динамические?
Всем привет! Вопрос в заголовке. Если динамический массив даёт те же и ещё больше функций и, при том, лучше обращается с памятью, зачем...

4
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
21.09.2015, 12:57
Цитата Сообщение от Melany Посмотреть сообщение
при некорректно введенных данных, а именно элементов массива - вернуть NULL, как это осуществить,
C++
1
if( /*данные некорректны */ ) return NULL;
1
21 / 4 / 2
Регистрация: 05.07.2015
Сообщений: 126
21.09.2015, 13:05  [ТС]
Вообще-то данное условие у меня уже стоит, но спасибо и на этом)
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
21.09.2015, 13:18
Цитата Сообщение от Melany Посмотреть сообщение
данное условие у меня уже стоит
где? Но даже если так, то в чем тогда вопрос?
0
21 / 4 / 2
Регистрация: 05.07.2015
Сообщений: 126
21.09.2015, 13:32  [ТС]
Во функция, где стоит данное условие, а вопрос в том, что программа просто обрывается в этом месте, то есть что-то неверно, и я не могу тут разобраться.
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
int** CutRowsOfArray(int**T,int &row, int col, int CutRows, int*IndsForCuts)
{
    if(IndsForCuts==NULL)
    {
        for(int i=0, j=row-CutRows; i<row; i++)
        {
            if(j==i)
            {
                delete []T[i];
                T[i]=NULL;
                j++;
            }
        }
        OutPut(T, row, col);
        cout<<"\n\n Array to be returned:\n";
 
        int **A=new int*[row-CutRows];
        for(int i=0, j=0; i<row; i++)
        {
            if(T[i])
                A[j++]=T[i];
        }
        row-=CutRows;
 
    delete [] T;
    T=A;
    return T;
    }
 
    // ******************
    for(int i=0, j=0; i<row; i++)
    {
        if(IndsForCuts[j]>i)
        {
            delete []T;
            T=NULL;
            return T;
        }
    // ******************
        if(IndsForCuts[j]==i)
        {
            delete []T[i];
            T[i]=NULL;
            j++;
        }
    }
    OutPut(T, row, col);
    cout<<"\n\n Array to be returned:\n";
 
    int **A=new int*[row-CutRows];
    for(int i=0, j=0; i<row; i++)
    {
        if(T[i])
            A[j++]=T[i];
    }
    row-=CutRows;
 
    delete [] T;
    T=A;
    return T;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.09.2015, 13:32
Помогаю со студенческими работами здесь

Если число является простым, то функция возвращает true, если не является false
Напишите функцию, получающую целое число N(&gt;0). Если оно является простым, то функция возвращает true, если не является false. #include...

Как вернуть в запросе значение по умолчанию, если SELECT возвращает NULL или ничего не возвращает?
Добрый день! Например я хочу чтобы донное выражение возвращало мне 0 или скажем 1, если результатом выражения rating вернется NULL: ...

Что возвращает функция в случае, если срабатывает ошибка?
public DataSet Query2b(string query) { if (this.OpenConnection()) { MySqlCommand...

Функция, которая возвращает true, если число нечётное
В Delphi есть функция Odd( Integer ) которая возвращает true если число нечётное. Возможно ли её вызвать из C++? Я что-то не нашёл ничего...

Функция, возвращает квадрат аргумента, если аргумент число; хвост списка, если аргумент список; иначе сам аргумент
Помогите, пожалуйста, с заданием: Написать функцию, которая возвращает квадрат аргумента, если аргумент число; хвост списка, если аргумент...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru