Форум программистов, компьютерный форум 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, но там если ввести первый раз неправильно, то он запускается, если ещё раз неправильно, то уже обработка исключения не идёт, то есть, нужно под каждый неправильный ввод писать новый ввод объекта и...
C++ Лежит ли точка в круге и треугольнике
Даны круг и треугольник на плоскости.Кординаты вводятся с клавиатуры.Даны кординаты точки. Узнать лежит ли точка в области пересечения 2ух фигур
C++ Чтобы звездочка бегала по краям экрана http://www.cyberforum.ru/cpp-beginners/thread22971.html
Доброго времени суток, уважаемые программисты! Нужна помощь. Написал программу на Borland C++, которая заполняет экран ASCII символом * (звездочка), вся проблема в том что она заполняет экран от начала до конца а я хочу улучшить программу чтобы звездочка бегала по краям экрана притом чтобы не было видно предыдущую. Не могу понять как это сделать. Вот нынешний код: #include<stdio.h>...
C++ надо программу, в которой задача состоит в том, чтобы найти точку на двумерной сетке Точка, безусловно, определяется координатами. Сетка должна иметь определенный размер, например, от 100 до 100 меш. Программа должна в начале своей деятельности выбирать точку на сетке(случайно), и задача пользователя будет,выбирать точку на сетке координат. В ответ, программа должна найти расстояние между точками и вывести на екран. Ето будет проиcходить до тех пор пока пользователь не угадает... подробнее

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