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

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

Войти
Регистрация
Восстановить пароль
 
ravvv
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 13
#1

Насчет простых задачек по массивам - C++

07.03.2009, 15:17. Просмотров 532. Ответов 3
Метки нет (Все метки)

1)
Дан одномерный массив, состоящий из семи элементов. Элементы создаются случайно из диапазона от 1 до 7.
Определить максимальный элемент массива и ближайший к максимальному элементу элемент массива.

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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int mas [7];
    int i;
    int max;
    int a;
    
    srand(time(0));
       for (i=0;i<7;i++)
   {
    mas[i]=rand()%8;   
       cout << mas[i];
       cout << "\n";
}
    
    for (i=0; i<7; i++)
    {   
if (mas [i] > max)
{
max = mas [i];
}
 
}
 
 
cout << "max = " << max; cout <<"\n";
    system("PAUSE");
    return EXIT_SUCCESS;
Вопрос: Как определить ближайший к максимальному элементу элемент массива

2) Дан двумерный массив размером 3 на 3. Элементы создаются случайно из диапазона от 1 до 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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    
    int i,j;
    
    int sum = 0;
    int sub = 0;
    int sum_count = 0;
    int sub_count = 0;
    
    int mas [3] [3];
    srand(time(0));
    
    for (int i=0; i<3; i++)
    {
    for (int j=0; j<3; j++)
    
{
 mas[i][j]=rand()%6;   
   cout.width(2);
       cout << mas[i][j];
 
}
  cout << "\n";
}
 
//цикл для главной диагонали
    for (int i = 0;i<3;i++)
    {
        for (int j = 0;j<3;j++)
        {
            if (i == j)
            {
                sub -= mas[i][j];
                sub_count --;
            }
        }
    }
 
    
    
   
    
    //цикл для побочной диагонали
    
    for (int i = 0;i<3;i++)
    {
        if(mas[i][3-i] < )
        {
            sum += mas[i][3-i+1];
                sum_count ++;
        }
    }
 
 
 
cout << sub << "\n";
cout << sum << "\n";
 
 
    system("PAUSE");
    return EXIT_SUCCESS;
}
Вопрос: Как найти разность элементов на главной диагонали? И как определить саму побочную диагональ?

Помогите пожалуйста. Заранее благодарю
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2009, 15:17     Насчет простых задачек по массивам
Посмотрите здесь:

c++ пара задачек C++
Примеры решения простеньких задачек на Си C++
насчет framework C++
C++ Кто может написать коды этих задачек?
Список задачек C++
C++ Решение задачек (Всероссийской олимпиаде школьников по информатике)
Насчет функций C++
C++ Несколько маленьких задачек
Накидать задачек по ссылкам и указателям C++
C++ Решение простых задач по массивам и спискам
C++ насчет print

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
freegat
-7 / 23 / 2
Регистрация: 05.03.2009
Сообщений: 181
07.03.2009, 16:58     Насчет простых задачек по массивам #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
#include <stdlib>
#include <iostream>
 
//using namespace std;
 
int main()
{
    int mas [7];
    int i;
    int max = 0;
    int a;
    int chislo;
    int next_max;
 
    srand(time(0));
 
    for (i=0;i<7;i++)
 
            {
                   mas[i]=rand()%8;
           cout << mas[i];
                   cout << "\n";
        }
 
     for (i=0; i<7; i++)
        {
            if (mas [i] > max)
                {
                    max = mas [i];
                    a = i;
                }
        }
 
     chislo = mas [6];
     mas [6] = mas [a];
     mas [a] = chislo;
 
        for (i=0; i<6; i++)
        {
            if (mas [i] > next_max)
                {
                    next_max = mas [i];
                }
        }
 
    cout << "max = " << max << endl;
        cout << "next_max = " << next_max << endl;
 
    system("PAUSE");
 
    return 0;
}
ravvv
0 / 0 / 0
Регистрация: 07.03.2009
Сообщений: 13
07.03.2009, 17:10  [ТС]     Насчет простых задачек по массивам #3
Цитата Сообщение от freegat Посмотреть сообщение
По первой задаче :

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
#include <stdlib>
#include <iostream>
 
//using namespace std;
 
int main()
{
    int mas [7];
    int i;
    int max = 0;
    int a;
    int chislo;
    int next_max;
 
    srand(time(0));
 
    for (i=0;i<7;i++)
 
            {
                   mas[i]=rand()%8;
           cout << mas[i];
                   cout << "\n";
        }
 
     for (i=0; i<7; i++)
        {
            if (mas [i] > max)
                {
                    max = mas [i];
                    a = i;
                }
        }
 
     chislo = mas [6];
     mas [6] = mas [a];
     mas [a] = chislo;
 
        for (i=0; i<6; i++)
        {
            if (mas [i] > next_max)
                {
                    next_max = mas [i];
                }
        }
 
    cout << "max = " << max << endl;
        cout << "next_max = " << next_max << endl;
 
    system("PAUSE");
 
    return 0;
}
Спасибо, за помощь.. но не работает.. выводит чепуху
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
07.03.2009, 17:34     Насчет простых задачек по массивам #4
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
#include <iostream>
#include <time.h>
 
int main()
{
    int mas [7];
    int max = -1;
    int next_max=-1;
 
    srand(time(0));
 
    for (int i=0;i<7;i++)
    {
        mas[i]=rand()%8;
        std::cout << mas[i]<<"\n";
        if(mas[i]>max)
        {
            next_max=max;
            max=mas[i];
        }
        else
            if(mas[i]>next_max)
                next_max=mas[i];
    }
 
    std::cout << "max = " << max << '\n';
    std::cout << "next_max = " << next_max << '\n';
 
    system("PAUSE");
 
    return 0;
}
Yandex
Объявления
07.03.2009, 17:34     Насчет простых задачек по массивам
Ответ Создать тему
Опции темы

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