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

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

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

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

11.04.2013, 02:08. Просмотров 249. Ответов 2
Метки нет (Все метки)

Уже устал искать ошибку, он не выводит mas, что-то не так с while, а что не могу понять. Заранее спасибо за помощь.


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
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
 
 
void Fun(int **matr, int n)
{
    int *mas=new int[2*n-2];
    int p=0;    
    while (p<2*n-2)
    {
    for(int i=0,j=1; i<n-1 && j<n; i++, j++)
    {
        mas[p]+=matr[i][j];
 
        if(j==n)
        {
            p++;
            i=-1;
            j=p;
        }
    }
    for(int i=1,j=0; i<n && j<n-1; i++, j++)
    {
        mas[p]+=matr[i][j];
 
        if(j==n-1)
        {
            p++;
            j=-1;
            i=p-n;
            
        }
    }
    }
    
 
    for(p=0;p<2*n-2;p++)
        cout<<mas[p]<<endl;
    delete []mas;
}
 
int main()
{
    int n;
    cout<<"Enter n"<<endl;
    cin>>n;
 
    int **matr = new int*[n];
 
    for (int i = 0; i<n; i++)
    {
        matr[i] = new int[n];
    }
 
    for (int i =0 ; i<n; i++, cout<<endl)
        for (int j =0 ; j<n; j++)
    {
        matr[i][j] = rand()%101-50;
        cout<<setw(3)<<matr[i][j]<<"  ";
    }
 
        Fun(matr,n);
    
        
        for (int i =0; i<n; i++)
    {
        delete []matr[i];
    }
        delete []matr;
 
        cin.get();
        cin.get();
        return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2013, 02:08     Поместить в массив суммы элементов параллельных главной диагонали
Посмотрите здесь:

C++ Минимум среди элементов диагоналей, параллельных главной диагонали матрицы
C++ Максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы C++
Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы C++
C++ Считать из файла матрицу. Определить максимум среди сумм элементов диагоналей, параллельных главной диагонали
C++ Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и диагоналях, параллельных ей. Перестановка элементов допуска
Определить минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы C++
Составить вектор из сумм элементов диагоналей, параллельных главной диагонали C++
C++ Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Дана квадратная матрица порядка M. Найти суммы элементов ее диагоналей, параллельных главной (начиная с одноэлементной диагонали A[1,M]) C++
C++ Найти максимум из сумм элементов диагоналей, параллельных главной диагонали матрицы
C++ В заданной матрице найти максимум среди сумм элементов диагоналей, параллельных главной диагонали

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
11.04.2013, 02:25     Поместить в массив суммы элементов параллельных главной диагонали #2
не это
C++
1
 if(j==n)
не это
C++
1
 if((j==n-1))
условия ни могут выполнится в принципе, так как инварианты обоих циклов задаются как j<n в первом и j<n-1

а у вас только по этим невыполнимым условиям увеличивается p

т.к. p не изменно, то и инвариант внешнего цикла будет постоянно истинным
C++
1
while (p<2*n-2)
Добавлено через 1 минуту
я так понимаю вам их надо заменить на
if(j==n-1) и if(j==n-2)

но в суть алгоритма я не вникал ) сами подумайте на что, почему это зацикливается я вам сказал
Skyl1995
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 7
11.04.2013, 03:02  [ТС]     Поместить в массив суммы элементов параллельных главной диагонали #3
Спасибо
Yandex
Объявления
11.04.2013, 03:02     Поместить в массив суммы элементов параллельных главной диагонали
Ответ Создать тему
Опции темы

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