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

Минимум среди элементов диагоналей, параллельных главной диагонали матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить среднее число слов в предложении и среднюю длину предложения http://www.cyberforum.ru/cpp-beginners/thread23028.html
ввести произвольный текст. Вычислить среднее число слов в предложении и среднюю длинну предложения. :wall: :wall:
C++ Как создать va_list для _vsntprintf ? Программирование хобби. В основном программирую на Autolispe. Хотелось бы иметь функцию аналогичную swprintf или _vsntprintf Написал функцию для одного аргумента через вызов... http://www.cyberforum.ru/cpp-beginners/thread23025.html
Обработка исключений C++
Как сделать обработку исключения так, чтобы, если, например, вводим количество координат больше, чем можно, программа предлагала, или выйти, или попробовать ввести ещё раз. Я пробовал с помощью...
C++ Лежит ли точка в круге и треугольнике
Даны круг и треугольник на плоскости.Кординаты вводятся с клавиатуры.Даны кординаты точки. Узнать лежит ли точка в области пересечения 2ух фигур
C++ Чтобы звездочка бегала по краям экрана http://www.cyberforum.ru/cpp-beginners/thread22971.html
Доброго времени суток, уважаемые программисты! Нужна помощь. Написал программу на Borland C++, которая заполняет экран ASCII символом * (звездочка), вся проблема в том что она заполняет экран от...
C++ надо программу, в которой задача состоит в том, чтобы найти точку на двумерной сетке Точка, безусловно, определяется координатами. Сетка должна иметь определенный размер, например, от 100 до 100 меш. Программа должна в начале своей деятельности выбирать точку на сетке(случайно), и... подробнее

Показать сообщение отдельно
tom
1 / 1 / 0
Регистрация: 08.11.2008
Сообщений: 62
08.04.2009, 11:21  [ТС]
Ну вот))
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
90
91
92
93
94
95
#include <iostream>
using namespace std;
 
int GetItem(int **A, int i, int j){
    if ((j<i)&& (j>i))
        return 0;
    else 
        return A[i][j];}
 
 
int ShowMatrix (int **A, int n, int m){
    for (int i=0; i<n; i++){
        cout << endl;  
      for (int j=0; j<m; j++)
          printf("%5d ", GetItem(A,i,j)); }
    cout << endl;
return 0;}
 
void main()
{
    setlocale(LC_ALL, ".1251");
    cout << "Введите размерность квадратной матрицы не больше 10" << endl; 
    int n;
    while (true){
    cin >> n;
    if (n > 0 && n <=10) 
        break; 
    cout << "Повторите ввод!" << endl; }
 
    int m;
    m=n;
    int ** p;                      // выделяем память под элементы ниже побочной диагонали
    p = new int * [n];
    for (int i = 0; i < n; i++)
        p[i] = new int [i+1];
    
    cout << "Введите элементы матрицы:" << endl;         //ввод матрицы
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++)
            if ((j+i)<(n-1))
                p[i][j]=0;
            else {
             cout << "Введите элемент " << i<<"."<< j <<":";   
             cin >> p[i][j];}
 
    ShowMatrix (p,n,m);
    cout<<endl;
 
    int sum;
    bool FoundLine = false;  
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++){
            if (p[i][j]<0) 
                break;
            if (j==(m-1)){
                FoundLine = true;
                sum = 0;
                for (int j=0; j<m; j++)
                    sum = sum + p[i][j];
        cout << "Сумма элементов -" << (i) << " - строки, в которой нет отрицательных элементов = " << sum << endl<<endl;
    }}
if (!FoundLine) 
  cout << "Каждая строка содержит отрицательный элемент"<<endl<<endl;
 
//минимум ниже главной диагонали 
int min=37687;
int globMin = 32767;
for (int k = n-1; k>0; k--){
  for(int i=n-1; i>0; i--){
    for (int j=0; j<n-1; j++){
        if ((i-j)==k)
            if (p[i][j]<min)
                min=p[i][j];    
        }
  }
  if (min < globMin)
globMin = min;
cout << "Минимум в диагонали = "<<k<<" ниже главной "<< min<<endl;
}
//минимум выше главной диагонали
int minn=37688;
for (int k = n-1; k>0; k--){
  for(int i=0; i<n-1; i++){
    for (int j=n-1; j>0; j--){
        if ((j-i)==k)
            if (p[i][j]<minn)
                minn=p[i][j];   
        }
  }
  if (minn < globMin)
globMin = minn;
cout << "Минимум в диагонали = "<<k<<" выше главной "<< minn<<endl;
}
cout << endl << "Наименьший из минимальных по диагоналям = "<< globMin<<endl;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru