Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 13
1

Сформировать массив А(k), состоящий из индексов отрицательных элементов

09.11.2017, 20:19. Показов 3043. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
формировать массив B(n, m) случайных чисел отрезка (-10; 165). Сформировать массив А(k), состоящий из индексов отрицательных элементов исходного массива. Вывести оба массива.

Помогите кто знает, как это сделать

Добавлено через 46 минут
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
#include <iostream>  
#include <iomanip> 
#include <ctime>
using namespace std; 
 
int main() 
{
    srand(time(0));
    int  array[-19][165]; // размерность массива 
    int i, j;
 
    for (  i = 0; i < -10; i++) 
        for (  j = 0; j < 165; j++) 
            array[i][j] = rand() % 100; 
 
    for ( int i = 0; i < -10; i++)  
    {
        for ( int j = 0; j < 165; j++)  
          cout << setw(3) <<  array[i][j] << " ";
        cout << endl; 
    } 
 
    int ar_max[165];//
    int n = 0;  
    int max;
 
    for ( i = 0; i < 5; i++)  
    {    
        max = array[i][0];
        for (  j = 0; j < 6; j++) 
        { 
            
            if(max < array[i][j]) 
            { 
                int temp = array[i][j]; 
                array[i][j] = max; 
                max = temp;
            } 
        } 
        ar_max[n] = max; 
        n++;// счётчик индекса в массиве
    } 
 
    cout << endl; 
 
    for (  i = 0; i < -10; i++) 
        cout << ar_max[i] << endl;
 
    system("Pause");
получилось как то так

Добавлено через 6 минут
C++
1
2
3
srand(time(0));
int array[-10][165]; // размерность массива 
int i, j;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2017, 20:19
Ответы с готовыми решениями:

Сформировать одномерный массив В[К], состоящий из отрицательных элементов массива А
Задан массив А размером N на M Сформировать одномерный массив В, состоящий из отрицательных...

ArrayList: Сформировать массив C, состоящий из нечетных элементов А и из отрицательных элементов B
Даны два массива A и B. Сформировать новый массив C, состоящий из нечетных элементов из массива А и...

Сформировать массив, состоящий из индексов нечетных чисел исходного массива
Дан массив вещественных чисел. Сформировать новый массив, состоящий из индексов нечетных чисел...

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

10
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
09.11.2017, 21:33 2
ДмитрийВС,
Так в чем вопрос ?
Вы составили алгоритм на C++ и теперь Вам нужно тоже самое на С# ?

Пользуйтесь тегами при оформлении кода
Кликните здесь для просмотра всего текста
Сформировать массив А(k), состоящий из индексов отрицательных элементов
0
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 13
09.11.2017, 22:12  [ТС] 3
Цитата Сообщение от worldown Посмотреть сообщение
Так в чем вопрос ?
Вы составили алгоритм на C++ и теперь Вам нужно тоже самое на С# ?
Пользуйтесь тегами при оформлении кода
Мне не сильно важен язык программирования, пусть будет С# или же C++, мне нужно этот код довести до ума по заданию, в этом нужна помощь, читаю книгу про С++ массивы, но пока сделать не получается
0
315 / 244 / 149
Регистрация: 03.10.2017
Сообщений: 886
Записей в блоге: 1
09.11.2017, 22:26 4
Это матрица, а не массив.
Цитата Сообщение от ДмитрийВС Посмотреть сообщение
int *array[-19][165]; // размерность массива
0
189 / 177 / 111
Регистрация: 22.06.2009
Сообщений: 533
09.11.2017, 22:32 5
ДмитрийВС, а что можно создавать отрицательный массив ?
Не очень что то въеду в задание, т.е получается так, что надо с генерировать сколько то случайных чисел в диапазоне
от -10 до 165 так ? А Сколько с генерировать то надо???
1
315 / 244 / 149
Регистрация: 03.10.2017
Сообщений: 886
Записей в блоге: 1
09.11.2017, 22:41 6
ОТрицательный индекс вообще не может быть
0
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 13
09.11.2017, 23:04  [ТС] 7
worldown, Все верно, пару штук.

Добавлено через 1 минуту
Masson1848, Иногда бывает так, что удобнее было бы, если бы мы имели возможность обращаться к элементам массива, которые имеют отрицательный индекс. Распространенное решение — узнать минимальный возможный индекс (mn), максимальный возможный индекс (mx) и создать массив размером abs(mn) + mx + 1. В таком случае обращение к -1 элементу превращается в обращение к -1 + abs(mn) элементу. Этот подход имеет несколько недостатков: легко забыть дописать + abs(mn) при обращении к массиву, тяжелее дебагать, код становится громоздким.
Решая задачу с последнего контесте (383D - Antimatter), я придумал похожее, но более удобное решение (в этой задаче нужно было обращаться к отрицательной сумме в динамике). Допустим, вам необходим массив, индексы которого лежат в промежутке [mn; mx] и mn < 0. Заведем массив mem[mx + abs(mn) + 1] и int* dp. В начале программы проинициализируем dp = mem + abs(mn). Готово! Можно обращаться к dp по отрицательным индексам в промежутке [mn, 0).
0
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
10.11.2017, 08:20 8
Цитата Сообщение от Masson1848 Посмотреть сообщение
Это матрица, а не массив.
Это многомерный массив, а не матрица.
Насчет ТЗ по идее должно вводиться n и m, потом генерируется двумерный массив состоящий из случайных чисел от -10 до 165 (там же можно подсчитать количество отрицательных элементов) затем создается строковый массив A который заполняется индексами из отрицательных элементов первого массива потом оба массива выводятся на экран.

Не по теме:

Цитата Сообщение от ДмитрийВС Посмотреть сообщение
Можно обращаться к dp по отрицательным индексам в промежутке [mn, 0).
Конечно можно пытаться надевать штаны через голову.


Цитата Сообщение от ДмитрийВС Посмотреть сообщение
Допустим, вам необходим массив, индексы которого лежат в промежутке [mn; mx] и mn < 0.
Учите мат часть. Массив это не диапазон чисел, массив это коллекция однотипных объектов где индексы указывают исключительно на местоположение в этой коллекции. Про размерность массива тоже почитайте.
З. Ы. С этого вообще выпал в осадок
Цитата Сообщение от ДмитрийВС Посмотреть сообщение
for ( i = 0; i < -10; i++)
0
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 13
11.11.2017, 15:17  [ТС] 9
Здравствуйте, вы можете подсказать, что переделать в моем коде?
0
644 / 528 / 324
Регистрация: 20.05.2015
Сообщений: 1,469
13.11.2017, 07:41 10
Лучший ответ Сообщение было отмечено ДмитрийВС как решение

Решение

Цитата Сообщение от ДмитрийВС Посмотреть сообщение
что переделать в моем коде?
Писать с нуля.
На С++ получилось как-то так:
Кликните здесь для просмотра всего текста
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
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <iostream>  
 
 
using namespace std;
 
int main()
{
    srand( (unsigned)time( NULL ) );
    int n,m;
    printf("n:");
    scanf_s("%d",&n);
    printf("m:");
    scanf_s("%d",&m);
    int** arr = new int*[n];
    int** arr2 = new int*[];
    int k=0;
    for (int i=0;i<n;i++)
    {
        arr[i]=new int[m];
        for (int j=0;j<m;j++)
        {
            arr[i][j]=(double)rand() / (RAND_MAX + 1) * (166 + 10)-10;
            printf("%3d ",arr[i][j]);
            if (arr[i][j]<0) 
            {arr2[k] = new int[2];
            arr2[k][0]=i;
            arr2[k][1]=j;
            k++;
            }
        }
        cout<<endl;
    }
    cout<<endl;
    for (int i=0;i<k;i++)
    {
        printf("%3d %3d",arr2[i][0],arr2[i][1]);
        cout<<endl;
    }
    scanf_s("%d",&n);
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 09.11.2017
Сообщений: 13
16.11.2017, 13:32  [ТС] 11
спасибо большое

Добавлено через 49 секунд
Огромное спасибо)
0
16.11.2017, 13:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2017, 13:32
Помогаю со студенческими работами здесь

Дан вещественный массив. Сформировать новый массив, состоящий из его элементов, не являющихся локальным максимумом
(При решении задачи использовать ArrayList) Дан вещественный массив. Сформировать новый массив,...

Сформировать новый массив В, состоящий из четных элементов массива А
Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий из четных элементов массива...

Сформировать новый массив, состоящий из противоположных соответствующих элементов
Дан целочисленный двумерный массив, размерности nхm. Сформировать новый массив, состоящий из...

Сформировать новый массив В, состоящий из положительных элементов массива А
Помогите с задачкой (1) 1.Массив А вводится с клавиатуры. Сформировать новый массив В, состоящий...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru