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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить среднее число слов в предложении и среднюю длину предложения http://www.cyberforum.ru/cpp-beginners/thread23028.html
ввести произвольный текст. Вычислить среднее число слов в предложении и среднюю длинну предложения. :wall: :wall:
C++ Как создать va_list для _vsntprintf ? Программирование хобби. В основном программирую на Autolispe. Хотелось бы иметь функцию аналогичную swprintf или _vsntprintf Написал функцию для одного аргумента через вызов swprintf(szBuffer,format,var); Хотелось бы иметь На autoLispe ->(format "%s %d %f" "Test=" 120 63.4) функцию с переменным количеством аргументов. На Си ->_vsntprintf(szBuffer,... http://www.cyberforum.ru/cpp-beginners/thread23025.html
Обработка исключений C++
Как сделать обработку исключения так, чтобы, если, например, вводим количество координат больше, чем можно, программа предлагала, или выйти, или попробовать ввести ещё раз. Я пробовал с помощью switch, но там если ввести первый раз неправильно, то он запускается, если ещё раз неправильно, то уже обработка исключения не идёт, то есть, нужно под каждый неправильный ввод писать новый ввод объекта и...
Подскажите рабочий пример по использованию TThread C++ Builder
Если Вам не трудно, дайте ссылку или скиньте тут рабочий пример любого воздействия на форму из дочернего потока. На сколько понимаю используется класс TThread?
C++ надо программу, в которой задача состоит в том, чтобы найти точку на двумерной сетке http://www.cyberforum.ru/cpp-beginners/thread22964.html
Точка, безусловно, определяется координатами. Сетка должна иметь определенный размер, например, от 100 до 100 меш. Программа должна в начале своей деятельности выбирать точку на сетке(случайно), и задача пользователя будет,выбирать точку на сетке координат. В ответ, программа должна найти расстояние между точками и вывести на екран. Ето будет проиcходить до тех пор пока пользователь не угадает...
C++ Сортировка массива структур Имеется массив структур, который необходимо отсортировать по числовому ключу. Я написал код, но он не работает, поэтому просьба указать на ошибку. #include <stdio.h> #include <stdlib.h> int i; typedef struct { подробнее

Показать сообщение отдельно
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;
}
 
Текущее время: 09:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru