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

Вычислить сумму элементов главной диагонали двумерного массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ создание списка http://www.cyberforum.ru/cpp-beginners/thread354380.html
Помогите плиз :wall: Односвязный линейный список Хранящиеся в списке данные типа long float Метод сортировки -- Отбор Сформировать тип звена списка для заданного типа списка. Выбрать процедуру добавления звена для заданного типа списка. Выбрать процедуру удаления звена для заданного типа списка. Выбрать процедуру поиска звена для заданного типа списка.
C++ Сохранить html страницу В общем-то создалась такая ситуация, что нужно при помощи c++ сохранить html страницу с адреса. Тоесть даешь ему ссылку и оно сохраняет эту страницу. В какую сторону копать? Не имею не малейшего представления http://www.cyberforum.ru/cpp-beginners/thread354377.html
Подскажите пожалуйста! C++
Какая задача у этого кода? // <DFM> TFORM2 = class(TForm); object Form2: TForm2 Left = 0 Top = 0 ClientHeight = 2 ClientWidth = 140 Color = clBtnFace
максимина и минимакса C++
Всем привет!) Подскажите как исправить прогу. задание: составить функцию определения максимина и минимакса прямоугольной матрицы. набросок: #include <iostream.h> #pragma hdrstop #pragma argsused int main(int argc, char* argv)//the function prototype of the main { const int n=3; int a;
C++ Векторы+клас http://www.cyberforum.ru/cpp-beginners/thread354336.html
Добрый вечер! Помогите пожалуйста кто-нибуть в написании или обьяснении создания програмы: Создать клас vector3D, какой задаеться троицей координат. Обязательно должны быть реализированны : 1) сумма и разница векторов; 2) скалярное произведение векторов; 3) умножение на скаляр; 4) сравнение векторов; 5) вычисление длины вектора; 6) сравнение длин векторов. Должны быть класы :
C++ как проверить цифру, на то что она является степенью тройки как проверить цифру, на то что она является степенью тройки? помогите плиз :) подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
21.09.2011, 15:35     Вычислить сумму элементов главной диагонали двумерного массива
Цитата Сообщение от Serjant0007 Посмотреть сообщение
3. Написать программу, которая подводит итоги Олимпийских игр.
вот более или менее простая реализация
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
#include <iostream.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
 
//Руссификация
ostream& operator<<(ostream &stream,char* s){
        for(char* ps=s; *ps; ps++){
                if(*ps=='ё')
                        stream<<char(241);
                else if(*ps=='Ё')
                        stream<<char(240);
                else if(*ps>=-64 && *ps<=-17)                   
                        stream<<char(*ps+64+128);
                else if(*ps<0)
                        stream<<char(*ps+64+176);
                else
                        stream<<*ps;
        }
        return stream;
}
 
struct TEAM
{
    char sComand[64];
    long nGold;
    long nSilver;
    long nBronze;
    long nPoints;
};
 
//Вывод полей структуры TEAM
void OutStruct(TEAM pTEAM)
{
    cout<<"sComand : "<<pTEAM.sComand<<"\r\n";
    cout<<"nGold   : "<<pTEAM.nGold<<"\r\n";
    cout<<"nSilver : "<<pTEAM.nSilver<<"\r\n";
    cout<<"nBronze : "<<pTEAM.nBronze<<"\r\n";
    cout<<"nPoints : "<<pTEAM.nPoints<<"\r\n";
}
 
long CalcPoints(TEAM &pTEAM)
{
    pTEAM.nPoints = 0;
    pTEAM.nPoints += pTEAM.nGold*7;
    pTEAM.nPoints += pTEAM.nSilver*6;
    pTEAM.nPoints += pTEAM.nBronze*5;
    return pTEAM.nPoints;
}
 
int main()
{
    TEAM * TEAMS;
    TEAM   BUFER;
    long i,j,N;
    do
    {
        cout<<"Введите число команд N: ";
        cin>>N;
        TEAMS = new TEAM[N*sizeof(TEAM)];
        cout<<"\tВвод команд\r\n";
        for(i = 0; i < N; i++)
        {
            cout<<"Команда # "<<i + 1<<"\r\n";
            cout<<"sComand : ";cin>>TEAMS[i].sComand;
            cout<<"nGold   : ";cin>>TEAMS[i].nGold;
            cout<<"nSilver : ";cin>>TEAMS[i].nSilver;
            cout<<"nBronze : ";cin>>TEAMS[i].nBronze;
            cout<<"nPoints : "<<CalcPoints(TEAMS[i])<<"\r\n";
        }
        cout<<"\tСортировка(по числу очков) списка команд\r\n";
        for(i = 0; i < N; i++)
        {
            for(j = i + 1; j < N; j++)
            if(TEAMS[i].nPoints < TEAMS[j].nPoints)
            {
                BUFER   = TEAMS[j];
                TEAMS[j] = TEAMS[i];
                TEAMS[i] = BUFER;
            }
            cout<<"Команда # "<<i + 1<<"\r\n";
            OutStruct(TEAMS[i]);
        }
        delete [] TEAMS;//Чистим память
        cout<<"Нажмите Y для нового ввода\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Результаты работы
Введите число команд N: 5
Ввод команд
Команда # 1
sComand : Comanda1
nGold : 4
nSilver : 2
nBronze : 5
nPoints : 65
Команда # 2
sComand : Comanda2
nGold : 8
nSilver : 2
nBronze : 3
nPoints : 83
Команда # 3
sComand : Comanda3
nGold : 1
nSilver : 0
nBronze : 5
nPoints : 32
Команда # 4
sComand : Comanda4
nGold : 3
nSilver : 1
nBronze : 0
nPoints : 27
Команда # 5
sComand : Comanda5
nGold : 11
nSilver : 10
nBronze : 8
nPoints : 177
Сортировка(по числу очков) списка команд
Команда # 1
sComand : Comanda5
nGold : 11
nSilver : 10
nBronze : 8
nPoints : 177
Команда # 2
sComand : Comanda2
nGold : 8
nSilver : 2
nBronze : 3
nPoints : 83
Команда # 3
sComand : Comanda1
nGold : 4
nSilver : 2
nBronze : 5
nPoints : 65
Команда # 4
sComand : Comanda3
nGold : 1
nSilver : 0
nBronze : 5
nPoints : 32
Команда # 5
sComand : Comanda4
nGold : 3
nSilver : 1
nBronze : 0
nPoints : 27
Нажмите Y для нового


Добавлено через 1 минуту
Цитата Сообщение от MrGluck Посмотреть сообщение
В деве работает.
- можно экзешник в топик???Не работает такое выделение!!!
Цитата Сообщение от MrGluck Посмотреть сообщение
std::cin>> amount;
* * int list[amount][3], sum[amount], win[amount];


Добавлено через 3 минуты
MrGluck, рекомендую сюда посмотреть
http://www.cplusplus.com/doc/tutorial/arrays/
http://www.java2s.com/Code/C/Data-Ty...orintarray.htm
и больше не выкладывать заведомо ошибочный код

Добавлено через 3 часа 9 минут
Цитата Сообщение от Serjant0007 Посмотреть сообщение
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
#include <iostream>//i/o
#include <cstdlib> //srand
#include <conio.h> //getch()
#include <time.h>  //time()
#include <math.h>
 
using namespace std;//У меня тарій компилятор так что
 
//Руссификация
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='ё')
            stream<<char(241);
        else if(*ps=='Ё')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
 
int main()
{
    unsigned long i,j,m;
    double ** arr, sum;
    do
    {
        srand(time(NULL));
        std::cout<<"Введите размерность массива   : ";
        std::cin>>m;
 
        sum = 0;//Обнуляем сумму элементов
        arr = new double *[m];
        for(i = 0; i < m; i++)
        {
            arr[i] = new double[m];
            for(j = 0; j < m; j++)
                //Чтобы числа в массиве были не очень большими 
                //генерируем их в диапазоне 0 - 100
                std::cout<<(arr[i][j] = rand()%100)<<" ";
            sum += arr[i][i];
            std::cout<<"\r\n";
        }
        std::cout<<"Сумма элементов главной диагонали : ";
        std::cout<<sum<<"\r\n";
        std::cout<<"Y - новый ввод\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Инициализацию массива произвожу случайными числами от 0 до 100
[Результат работы]
Введите размерность массива : 5
3 63 21 62 5 97
56 53 26 24 76 33
14 83 62 11 1 50
43 96 7 27 14 76
13 19 45 90 17 24
Сумма элементов главной диагонали : 162
Y - новый ввод

Добавлено через 9 минут
Serjant0007, для твоего старого компилятора модернезируй код так
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 <iostream.h>//i/o
#include <stdlib.h> //srand
#include <conio.h>  //getch()
#include <time.h>   //time()
#include <math.h>
 
//Руссификация
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='ё')
            stream<<char(241);
        else if(*ps=='Ё')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
 
int main()
{
    int i,j,m;
    double ** arr, sum;
    do
    {
        srand(time(NULL));
        cout<<"Введите размерность массива   : ";
        cin>>m;
 
        sum = 0;//Обнуляем сумму элементов
        arr = new double *[m];
        for(i = 0; i < m; i++)
        {
            arr[i] = new double[m];
            for(j = 0; j < m; j++)
                //Чтобы числа в массиве были не очень большими 
                //генерируем их в диапазоне 0 - 100
                cout<<(arr[i][j] = rand()%100)<<" ";
            sum += arr[i][i];
            cout<<"\r\n";
        }
        cout<<"Сумма элементов главной диагонали : ";
        cout<<sum<<"\r\n";
        cout<<"Y - новый ввод\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Добавлено через 16 секунд
Serjant0007, для твоего старого компилятора модернезируй код так
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
#include <iostream.h>//i/o
#include <stdlib.h> //srand
#include <conio.h>  //getch()
#include <time.h>   //time()
#include <math.h>
 
//using namespace std;//У меня тарій компилятор так что
 
//Руссификация
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='ё')
            stream<<char(241);
        else if(*ps=='Ё')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
 
int main()
{
    int i,j,m;
    double ** arr, sum;
    do
    {
        srand(time(NULL));
        cout<<"Введите размерность массива   : ";
        cin>>m;
 
        sum = 0;//Обнуляем сумму элементов
        arr = new double *[m];
        for(i = 0; i < m; i++)
        {
            arr[i] = new double[m];
            for(j = 0; j < m; j++)
                //Чтобы числа в массиве были не очень большими 
                //генерируем их в диапазоне 0 - 100
                cout<<(arr[i][j] = rand()%100)<<" ";
            sum += arr[i][i];
            cout<<"\r\n";
        }
        cout<<"Сумма элементов главной диагонали : ";
        cout<<sum<<"\r\n";
        cout<<"Y - новый ввод\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
 
Текущее время: 07:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru