0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 7
1

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

17.12.2013, 01:11. Показов 821. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана задача: Посчитать количество отрицательных элементов выше главной диагонали матрицы размером 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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2013, 01:11
Ответы с готовыми решениями:

Определить количество отрицательных элементов расположенных выше главной диагонали
Определить количество отрицательных элементов расположенных выше главной диагонали

Определить количество отрицательных элементов, расположенных выше главной диагонали матрицы
Доброго времени суток, помогите пожалуйста с заданием. Желательно максимально просто Задание 2....

Определить количество отрицательных элементов, расположенных выше главной диагонали матрицы
Ребят, помогите!!! Необходимо определить количество отрицательных элементов, расположенных выше...

Определить количество отрицательных элементов, расположенных выше главной диагонали матрицы
2. Определить количество отрицательных элементов, расположенных выше главной диагонали матрицы.

9
Продам уран 238U
125 / 124 / 127
Регистрация: 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 ++;
}
}
1
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
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 / 0
Регистрация: 12.12.2013
Сообщений: 7
17.12.2013, 14:40  [ТС] 4
Цитата Сообщение от гапуся Посмотреть сообщение
a[i]=new double[n];
а это не инициализация?
0
97 / 71 / 12
Регистрация: 29.06.2011
Сообщений: 465
Записей в блоге: 1
17.12.2013, 14:50 5
Цитата Сообщение от гапуся Посмотреть сообщение
а это не инициализация?
только отведение памяти
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
17.12.2013, 14:55 6
гапуся, RaiaNKnight, и инициализация аля случайными значениями. В отличии от std::vector при выделении блока памяти он не инициализируется стантартными значениями как это делает вектор.
0
97 / 71 / 12
Регистрация: 29.06.2011
Сообщений: 465
Записей в блоге: 1
17.12.2013, 14:59 7
Цитата Сообщение от outoftime Посмотреть сообщение
гапуся, RaiaNKnight, и инициализация аля случайными значениями. В отличии от std::vector при выделении блока памяти он не инициализируется стантартными значениями как это делает вектор.
да, отведение памяти под объект вроде включает же в себя автоматические присвоение ему случайного значения.
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
17.12.2013, 15:02 8
RaiaNKnight, не присвоение случайного значения а выделение блока памяти который имел какое-то значение.
0
97 / 71 / 12
Регистрация: 29.06.2011
Сообщений: 465
Записей в блоге: 1
17.12.2013, 15:03 9
Цитата Сообщение от outoftime Посмотреть сообщение
RaiaNKnight, не присвоение случайного значения а выделение блока памяти который имел какое-то значение.

Не по теме:

оговорился я

0
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 раз. Не подскажите почему?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2013, 17:07
Помогаю со студенческими работами здесь

Посчитать сумму элементов в матрице выше главной диагонали, включая и ее
Дана матрица 3х3, нужно посчитать сумму элементов выше главное диагонали, включая диагональ ...

В матрице посчитать сумму четных элементов выше главной диагонали
Помогите пожалуйста!!! Задание такое: В матрице подсчитать сумму четных элементов выше главной...

Найти число отрицательных элементов в области выше главной и ниже побочной диагонали
В квадратной матрице а (7,7) найти число отрицательных элементов в области выше главной и ниже...

Нужна блок схема к задаче - посчитать сумму элементов выше главной диагонали матрицы 5х5
нужно составить блок схему к задаче: посчитать сумму элементов выше главной диагонали матрицы...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru