Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Массивы - C++

12.10.2009, 17:24. Просмотров 1121. Ответов 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. Дано два массива из чисел. Найти наименьшее среди тех элементов первого массива, которые не входят во второй массив.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2009, 17:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы (C++):

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

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

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

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

массивы указателей,указатели на массивы - C++
Понимаю что тема эта изжевана, но я ещё жую.Хочу, чтобы усвоилось. допустим есть QStringList a; a.append("мамa"); ...

индексные массивы и адресные массивы - C++
погитите решить задачу c массивами двумя способами {индексные и адресные} { Вычислить суммы элементов каждой строки матрицы Х(20х20),...

11
Neys
-1 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 14
27.10.2009, 16:05 #2
Не могу понять: можно ли решить вторую задачу без введения дополнительного массива, куда будут включены неповторяющиеся элементы первого массива? Подскажите, плз.
0
TanT
эволюционирую потихоньку
466 / 464 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
27.10.2009, 16:23 #3
Цитата Сообщение от Neys Посмотреть сообщение
Не могу понять: можно ли решить вторую задачу без введения дополнительного массива, куда будут включены неповторяющиеся элементы первого массива? Подскажите, плз.
зачем вообще что-то дополнительное? пиши прям в первый массив. поясняю
1. нашёл минимальное значение в первом массиве,
промаркировал его, можно испульзуя библиотеку limits.h маркировать максимальным числом
твоего диапазона. единственно, что если в массиве будет такое значение, но и это очень маловероятно для детской задачи, но и этого можно избежать если принять первое минимальное за маркер и искать минимальное значение как (a[i]<min)&&(a[i]!=marker)
2. ищёшь найденный минимальный во втором. не нашёл -- снова п.1
2
valeriikozlov
Эксперт С++
4675 / 2501 / 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; 
}
2
Neys
-1 / 0 / 0
Регистрация: 27.10.2009
Сообщений: 14
27.10.2009, 19:08 #5
Спасибо
0
valeriikozlov
Эксперт С++
4675 / 2501 / 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; 
}
1
Beg1ner
0 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 9
28.10.2009, 12:45 #7
А если элементы массивов надо вводить из файлов, как тогда лучше код переписать (С++)? Можно ли заранее не определять размер массивов как const?
0
Андрейка
420 / 224 / 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]
;
0
Beg1ner
0 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 9
28.10.2009, 13:28 #9
А какую-нибудь дополнительную библиотеку для std::ifstream надо использовать? Не могу додуматься, как это во второй задаче применить.
0
Андрейка
420 / 224 / 27
Регистрация: 25.03.2009
Сообщений: 744
28.10.2009, 13:36 #10
C++
1
#include <fstream>
0
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;               
}
0
blackswan
28.10.2009, 17:29     Массивы
  #12

Не по теме:

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2009, 17:29
Привет! Вот еще темы с ответами:

Массивы структур, массивы векторов - C++
Разработайте тип данных «Вектор в трехмерном пространстве» в виде структуры, поля которой — координаты вектора. Напишите следующие функции:...

Массивы структур и массивы строк - C++
Здравствуйте. Возникла проблема с одной работой: Постановка задачи: 1. Сформировать динамический массив из элементов структурного типа....

Массивы структур и массивы строк - C++
1. Сформировать динамический массив из элементов структурного типа. Структурный тип определен в варианте. 2. Распечатать...

массивы указателей,указатели на массивы - C++
Понимаю что тема эта изжевана, но я ещё жую.Хочу, чтобы усвоилось. допустим есть QStringList a; a.append(&quot;мамa&quot;); ...


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

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

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