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

Посчитать количество отрицательных элементов выше главной диагонали - C++

Восстановить пароль Регистрация
 
гапуся
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 7
17.12.2013, 01:11     Посчитать количество отрицательных элементов выше главной диагонали #1
Дана задача: Посчитать количество отрицательных элементов выше главной диагонали матрицы размером nxn. Я вот написала кое что, но считает она неправильно. Я новичек, по дскажите где ошиблась?

// lab5.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#pragma hdrstop
#include "conio.h"
#include "stdio.h"
#include "iostream"
#include "stdlib.h"
#include "iomanip"
#include <math.h>
using namespace std;




int _tmain(int argc, _TCHAR* argv[])
{
double **a, tmp;
int i, j, n;
cout<<"Vvedite razmer n:";
cin>>n;
a= new double*[n];
for (i=0; i<n; i++)
a[i]=new double[n];
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{cout<<"Vvedite a["<<i<<"]["<<j<<"]:";
cin>>a[i][j];}
cout<<"Massiv A:"<<endl;
for (i=0; i<n; i++)
{for (j=0; j<n; j++)
cout<<setw(9)<<a[i][j]<<" ";
cout<<endl;}
for (i=0; i<n; i++)
for (j=0; j<n; j++)
if (i+j<n+1)
{int count=0;
for (i=0; i<n; i++)
if(a[i][j] < 0)
++count;
cout<<endl;

cout << "The quantity of the negative elements is: " << count << endl;}
for (i=0; i<n; i++)
delete[] a[i];
delete[]a;
a=NULL;
system("pause");


return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 01:11     Посчитать количество отрицательных элементов выше главной диагонали
Посмотрите здесь:

C++ Определить количество отрицательных элементов выше и ниже диагонали
Нужна блок схема к задаче - посчитать сумму элементов выше главной диагонали матрицы 5х5 C++
C++ В матрице посчитать сумму четных элементов выше главной диагонали
Определить количество отрицательных элементов, расположенных выше главной диагонали матрицы C++
Верно ли, что среднее арифметическое элементов выше главной диагонали больше среднего арифметического элементов ниже главной диагонали C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bradobrei
Продам уран 238U
 Аватар для bradobrei
119 / 119 / 23
Регистрация: 22.01.2013
Сообщений: 298
17.12.2013, 06:37     Посчитать количество отрицательных элементов выше главной диагонали #2
вместо этого
C++
1
2
3
4
5
6
7
for (i=0; i<n; i++)
for (j=0; j<n; j++)
if (i+j<n+1)
{int count=0;
for (i=0; i<n; i++)
if(a[i][j] < 0)
++count;
вставь вот это
C++
1
2
3
4
5
6
7
int count = 0;
for (i=0; i<n; i++){
for (j= i + 1; j<n; j++){
if(a[i][j] < 0)
count ++;
}
}
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
17.12.2013, 06:56     Посчитать количество отрицательных элементов выше главной диагонали #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
#include <functional>
 
using namespace std;
 
int main()
{
    const int n = 5;
    int a[n][n];
    int res = 0;
    
    for (int i = 0; i < n; ++i) {
        res += count_if(a[i], a[i]+n-i, bind1st(greater<int>(), 0));
    }
    
    cout << "Result: " << res << endl;
   
    return 0;
}
Выделяя кусок памяти под массив и не инициализируя его, значения элементов массива будут соответствовать значениям блоков памяти, т.е. будут псевдослучайными.
гапуся
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 7
17.12.2013, 14:40  [ТС]     Посчитать количество отрицательных элементов выше главной диагонали #4
Цитата Сообщение от гапуся Посмотреть сообщение
a[i]=new double[n];
а это не инициализация?
RaiaNKnight
 Аватар для RaiaNKnight
96 / 70 / 7
Регистрация: 29.06.2011
Сообщений: 458
Записей в блоге: 1
17.12.2013, 14:50     Посчитать количество отрицательных элементов выше главной диагонали #5
Цитата Сообщение от гапуся Посмотреть сообщение
а это не инициализация?
только отведение памяти
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
17.12.2013, 14:55     Посчитать количество отрицательных элементов выше главной диагонали #6
гапуся, RaiaNKnight, и инициализация аля случайными значениями. В отличии от std::vector при выделении блока памяти он не инициализируется стантартными значениями как это делает вектор.
RaiaNKnight
 Аватар для RaiaNKnight
96 / 70 / 7
Регистрация: 29.06.2011
Сообщений: 458
Записей в блоге: 1
17.12.2013, 14:59     Посчитать количество отрицательных элементов выше главной диагонали #7
Цитата Сообщение от outoftime Посмотреть сообщение
гапуся, RaiaNKnight, и инициализация аля случайными значениями. В отличии от std::vector при выделении блока памяти он не инициализируется стантартными значениями как это делает вектор.
да, отведение памяти под объект вроде включает же в себя автоматические присвоение ему случайного значения.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
17.12.2013, 15:02     Посчитать количество отрицательных элементов выше главной диагонали #8
RaiaNKnight, не присвоение случайного значения а выделение блока памяти который имел какое-то значение.
RaiaNKnight
 Аватар для RaiaNKnight
96 / 70 / 7
Регистрация: 29.06.2011
Сообщений: 458
Записей в блоге: 1
17.12.2013, 15:03     Посчитать количество отрицательных элементов выше главной диагонали #9
Цитата Сообщение от outoftime Посмотреть сообщение
RaiaNKnight, не присвоение случайного значения а выделение блока памяти который имел какое-то значение.

Не по теме:

оговорился я

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2013, 17:07     Посчитать количество отрицательных элементов выше главной диагонали
Еще ссылки по теме:

Найти число отрицательных элементов в области выше главной и ниже побочной диагонали C++
Найти количество нулевых элементов, расположенных выше главной диагонали C++
Определить: сумма элементов выше главной диагонали меньше суммы элементов ниже главной диагонали? C++

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

Или воспользуйтесь поиском по форуму:
гапуся
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 7
17.12.2013, 17:07  [ТС]     Посчитать количество отрицательных элементов выше главной диагонали #10
Спасибо!!! Работает, только выводит почему-то строку "The quantity of the negative elements is: " выводит n раз, то есть если размер матрицы 2, 2 раза, если 5 , то соответственно 5 раз. Не подскажите почему?
Yandex
Объявления
17.12.2013, 17:07     Посчитать количество отрицательных элементов выше главной диагонали
Ответ Создать тему
Опции темы

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