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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
Ivanov23
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 3
#1

Массивы - C++

12.10.2009, 17:24. Просмотров 1058. Ответов 11
Метки нет (Все метки)

Помогите пожалуйста со следующими заданиями:

1. Даны числа n и m (вводятся с клавиатуры). Создайте массив int A[n][m] и заполните его следующим образом (ниже приведен пример для n=4 и m=6):
0 1 3 6 10 14
2 4 7 11 15 18
5 8 12 16 19 21
9 13 17 20 22 23
Выведите массив на экран, отводя на вывод каждого числа ровно 3 символа.
Заполнять, как я понял, надо диагонально.

2. Дано два массива из чисел. Найти наименьшее среди тех элементов первого массива, которые не входят во второй массив.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2009, 17:24     Массивы
Посмотрите здесь:

Даны массивы а и b. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi= -ai - Pascal
Даны массивы а и b, состоящие из n-элементов каждый. Получить новые массивы a и b, элементы которых вычисляются по правилу: ai=bi, bi=...

Даны массивы A(8), F(8),Q(8). Сформировать массивы С(8), каждый элемент которого вычисляется по формуле - Pascal ABC
uses crt; type mas=array of integer; var A,F,Q,C:mas; i,s:integer; begin clrscr; writeln('Массив первый:'); for i:=1...

Упорядочить массивы по по убыванию, потом соединить массивы в один упорядоченный массив - C (СИ)
Начала писать, запуталась Даны два одномерных массива состоящие из 10 целых чисел. Упорядочить массивы по по убыванию, потом соединить...

Табулирование функции и поиск данных. Одномерные массивы. Двумерные массивы - C#
Вычислить сумму первых четырех отрицательных элементов. В соответствии с п. 5.16 правил "Запрещено создавать темы с множеством...

Массивы. Циклические алгоритмы (Заполнить массивы случайными числами, лежащими в интервале 0 до 100) - C++
Доброго дня, уважаемые форумчане, помогите пожалуйста решить задание. Заполнить массивы случайными числами, лежащими в интервале 0 до...

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц) - C++
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник местонахождением соответствующего элемента aij (см....

Файлы. Компоненты - массивы чисел. Переформировать файл, где сначала идут массивы с положительными макс. элементами - Turbo Pascal
Здравствуйте!! я пишу такую задачу: нужно написать две программы, одна из них создает файл, где компоненты - массивы вещ. чисел; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Neys
-1 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 14
27.10.2009, 16:05     Массивы #2
Не могу понять: можно ли решить вторую задачу без введения дополнительного массива, куда будут включены неповторяющиеся элементы первого массива? Подскажите, плз.
TanT
эволюционирую потихоньку
465 / 463 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
27.10.2009, 16:23     Массивы #3
Цитата Сообщение от Neys Посмотреть сообщение
Не могу понять: можно ли решить вторую задачу без введения дополнительного массива, куда будут включены неповторяющиеся элементы первого массива? Подскажите, плз.
зачем вообще что-то дополнительное? пиши прям в первый массив. поясняю
1. нашёл минимальное значение в первом массиве,
промаркировал его, можно испульзуя библиотеку limits.h маркировать максимальным числом
твоего диапазона. единственно, что если в массиве будет такое значение, но и это очень маловероятно для детской задачи, но и этого можно избежать если принять первое минимальное за маркер и искать минимальное значение как (a[i]<min)&&(a[i]!=marker)
2. ищёшь найденный минимальный во втором. не нашёл -- снова п.1
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.10.2009, 17:48     Массивы #4
Neys,
можно ли решить вторую задачу без введения дополнительного массива, куда будут включены неповторяющиеся элементы первого массива?
Можно.
2 задача:
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
#include <iostream.h>
#include <process.h>
#include <windows.h>
 
int main ()
{
    int *masA, *masB, n, m, i, min1, min2, max, count=0;
    bool fl=true;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
        cout<<"Ââåäèòå êîëè÷åñòâî ýëåìåГ*òîâ Г¬Г*Г±Г±ГЁГўГ* 1: "<< endl;
        cin>>n;
        masA=new int[n];
        cout<<"Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ* 1: "<< endl;
        for(i=0; i<n; i++)
        {
            cout<<"["<<i<<"]=";
            cin>>masA[i];
        }          
        cout<<"ÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў 1: "<<endl;
        for(i=0; i<n; i++)
            cout<<masA[i]<<" ";
        cout<<endl;
        cout<<"Ââåäèòå êîëè÷åñòâî ýëåìåГ*òîâ Г¬Г*Г±Г±ГЁГўГ* 2: "<< endl;
        cin>>m;
        masB=new int[m];
        cout<<"Ââåäèòå ýëåìåГ*ГІГ» Г¬Г*Г±Г±ГЁГўГ* 2: "<< endl;
        for(i=0; i<m; i++)
        {
            cout<<"["<<i<<"]="; 
            cin>>masB[i];
        }
        cout<<"ÈñõîäГ*ûé Г¬Г*Г±Г±ГЁГў 2: "<<endl;
        for(i=0; i<m; i++)
        cout<<masB[i]<<" ";
        cout<<endl;
//Ïîèñê Г§Г*Г¤Г*Г*Г*îãî ìèГ*ГЁГ¬Г*ëüГ*îãî Г·ГЁГ±Г«Г*
        min1=masA[0];
        for(i=0; i<n; i++)
            if(min1>masA[i])
                min1=masA[i];
        min2=min1-1;
        max=masA[0];
        for(i=0; i<n; i++)
            if(max<masA[i])
                max=masA[i];
        while(fl && count<=n)
        {
            fl=false;
            min1=max;
            for(i=0; i<n; i++)
                if(min1>masA[i] && masA[i]>min2)
                        min1=masA[i];
            for(i=0; i<m; i++)
                if(min1==masB[i])
                    {
                        fl=true;
                        min2=min1;
                    }
            count++;
        }
        if(count==n+1)
            cout<<"Èñêîìîãî ýëåìåГ*ГІГ* Г*ГҐГІ"<<endl;
        else
            cout<<"Èñêîìûé ýëåìåГ*ГІ = "<<min1<<endl;
        system("pause");
        return 0; 
}
Neys
-1 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 14
27.10.2009, 19:08     Массивы #5
Спасибо
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
27.10.2009, 19:20     Массивы #6
1 задача:
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
#include <process.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
int main ()
{
    int **mas, n, m, i, n1, m1, verh;
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    printf("Ââåäèòå êîëè÷åñòâî ñòðîê Г¬Г*Г±Г±ГЁГўГ*: \n");
    scanf("%d", &n);
    printf("Ââåäèòå êîëè÷åñòâî ñòîëáöîâ Г¬Г*Г±Г±ГЁГўГ*: \n");
    scanf("%d", &m);   
        mas=new int*[n];
        for(i=0; i<n; i++)
                mas[i]=new int[m];
        // Г§Г*ïîëГ*ГҐГ*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ*
        n1=m1=verh=0;
        for(i=0; i<n*m; i++)
        {
                if(n1!=n && m1!=-1)
                {
                    mas[n1][m1]=i;
                    n1++; 
                    m1--;               
                }
                else
                {
                    if(verh<m-1)
                    {
                    verh++;
                    n1=0;
                    m1=verh;
                    i--;
                    }
                    else
                    {
                        m1=m-1;
                        n1=verh-m+2;
                        verh++;
                        i--;
                    }
                }           
        }
        for(n1=0; n1<n; n1++)
        {
            for(m1=0; m1<m; m1++)
                printf("%3d", mas[n1][m1]);
            printf("\n");
        }        
         system("pause");
         return 0; 
}
Beg1ner
0 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 9
28.10.2009, 12:45     Массивы #7
А если элементы массивов надо вводить из файлов, как тогда лучше код переписать (С++)? Можно ли заранее не определять размер массивов как const?
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
28.10.2009, 13:08     Массивы #8
из файла считывать так:
C++
1
2
std::ifstream in("c:\\text.txt");
                                  int k ; in>>k;
можно и не const:
C++
1
2
3
int n;
std::cin>>n;
int *a = new int [n]
;
Beg1ner
0 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 9
28.10.2009, 13:28     Массивы #9
А какую-нибудь дополнительную библиотеку для std::ifstream надо использовать? Не могу додуматься, как это во второй задаче применить.
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
28.10.2009, 13:36     Массивы #10
C++
1
#include <fstream>
Beg1ner
0 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 9
28.10.2009, 14:54     Массивы #11
Подскажите, в чем у меня ошибка?
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
{int i, min1, min2, max, count=0;
bool fl=true;
 
int n;
std::cin>>n;
int *masA = new int [n];
std::ifstream in("input_1.txt");
int k ; in>>k;
int m;
std::cin>>m;
int *masB = new int [m];
std::ifstream im("input_2.txt");
int k2 ; im>>k2;
 
        min1=masA[0];
        for(i=0; i<n; i++)
            if(min1>masA[i])
                min1=masA[i];
                min2=min1-1;
                max=masA[0];
                for(i=0; i<n; i++)
                         if(max<masA[i])
                         max=masA[i];
                while(fl && count<=n)
                {
                        fl=false;
                        min1=max;
                        for(i=0; i<n; i++)
                                 if(min1>masA[i] && masA[i]>min2)
                                 min1=masA[i];
                        for(i=0; i<m; i++)
                                 if(min1==masB[i])
                                        {
                                                fl=true;
                                                min2=min1;
                                        }
                        count++;
                }
                if(count==n+1)
                        cout << endl << "Искомого элемента нет." << endl;
                else
                       cout << endl << "Искомый элемент равен " << min1 << "." << endl;
        cin.get();
        cin.get();
        return 0;               
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2009, 17:29     Массивы
Еще ссылки по теме:

Попадание точки. Массивы чисел. Массивы записей. - C++
Всем привет. По языкам задали три контрольные на си. Я сам си не знаю, даже не представляю, поэтому очень нужна ваша помощь. ...

Многомерные массивы, как перебирать внутренние массивы - C++
Здравствуйте. Такой учебный код и плохо понимаю как перебираются внутренние массивы, может кто пояснит подоходчивее. Именно внутренний...

.NET 4.x Создать массив, содержащий массивы, которые, в свою очередь, содержат массивы, в которых уже будут храниться различные типы данных - C#
Мне нужно создать массив, содержащий массивы, которые, в свою очередь, содержат массивы, в которых уже будут храниться различные типы...

Статические массивы,Динамические массивы,строки - Delphi
1)Создать двумерный массив A(N,M) целых положительных и отрицательных чисел с помощью функции Random. Найти произведение всех четных...


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

Или воспользуйтесь поиском по форуму:
blackswan
28.10.2009, 17:29     Массивы
  #12

Не по теме:

а вот мне надо сделать хитрый тип tensor, забыл как. Есть тип matrix, мне надо сделать тип - матрицу таких типов, это я так тензорные матрицы показываю, что-то типа typedef matrix tensor[][] или как?

Yandex
Объявления
28.10.2009, 17:29     Массивы
Ответ Создать тему
Опции темы

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