Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2014, 18:08   #1
Wunschpunsch
Пользователь
 
Регистрация: 16.03.2014
Сообщений: 19
По умолчанию Определить номера строк в матрице...

Задание:
Определить номера строк в матрице, в которых элементов, принадлежащих отрезку[А,В], больше, чем элементов, принадлежащих отрезкам[-бесконечность,А],[В,+бесконечность].

Вот код.

Код C++
Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int i,j,k,p,n;
double a,b;
cin>>n>>a>>b;
k=0; p=0;i=0;j=0;
int **mas = new int *[n];
for (int i = 0; i <n; i++)
mas[i] = new int [n];
for (int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
cin >> mas[i][j];
 
for (int i = 0; i <n; i++)
k=0; p=0;
for(int j = 0; j < n; j++)
if ((mas[i][j]<=a) || (mas[i][j]>=b))
{k=k+1;}
 
if ((mas[i][j]>=a) && (mas[i][j]<=b))
{p=p+1;}
if (p>k) 
cout<<i;
 
for (int i = 0; i < n; i++)
delete []mas[i];
delete []mas;
system("pause");
return 0; 
}

Последний раз редактировалось Stilet; 05.04.2014 в 18:17.
Wunschpunsch вне форума Ответить с цитированием
Старый 05.04.2014, 19:55   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Не проверял:
Код:
#include "stdafx.h"
#include <iostream>

using namespace std;

int 
main()
{
    int p, n;
    double a, b;
    cin >> n >> a >> b;
    int **mas = new int *[n];
    for (int i = 0; i < n; ++i) {
        mas[i] = new int [n];
        for (int j = 0; j < n; ++j)
            cin >> mas[i][j];
    }
    for (int i = 0; i < n; ++i) {
        for (int j = 0, p = 0; j < n; ++j)
            p += (mas[i][j] >= a && mas[i][j] <= b);
        if (p > n - p)
            cout << i << endl;
    }
    for (int i = 0; i < n; ++i)
        delete []mas[i];
    delete []mas;
    system("pause");
}
Основная ошибка - нехватка операторных скобок для помещения всех необходимых операторов в циклы.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 05.04.2014 в 21:01.
BDA вне форума Ответить с цитированием
Старый 05.04.2014, 20:12   #3
Wunschpunsch
Пользователь
 
Регистрация: 16.03.2014
Сообщений: 19
По умолчанию

К сожалению тоже не работает(
и как мне кажется вот здесь не нужно p=0
И если ее тоже убрать все равно не работает(
[CODE]
for(int j = 0, p = 0; j < n; ++j)
Wunschpunsch вне форума Ответить с цитированием
Старый 05.04.2014, 21:00   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

И правда не работает. Не учел, что запись int j = 0, p = 0 приводит к созданию локальной переменной p внутри цикла.
Код:
#include "stdafx.h"
#include <iostream>

using namespace std;

int 
main()
{
    int p, n;
    double a, b;
    cin >> n >> a >> b;
    int **mas = new int *[n];
    for (int i = 0; i < n; ++i) {
        mas[i] = new int [n];
        for (int j = 0; j < n; ++j)
            cin >> mas[i][j];
    }
    for (int i = 0; i < n; ++i) {
        for (int j = (p = 0); j < n; ++j)
            p += (mas[i][j] >= a && mas[i][j] <= b);
        if (p > n - p)
            cout << i << endl;
    }
    for (int i = 0; i < n; ++i)
        delete []mas[i];
    delete []mas;
    system("pause");
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить номера строк в матрице, в которых элементов, принадлежащих отрезку[A,B], больше, чем элементов, принадлежащих отрезкам[ Wunschpunsch Помощь студентам 5 20.03.2014 19:05
Определить номера тех строк целочисленной матрици a[n,k] которые совпадают с массивом d[k]. miyachi Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 04.03.2013 21:00
В матрице m*n определить номера и количество полностью нулевых столбцов moshensky Общие вопросы C/C++ 1 08.11.2012 16:12
Определить номера строк массива MISTER_88 Помощь студентам 6 23.03.2012 11:36
С++. Определить номера строк матрицы в которых знаки элементов чередуются StudeHt Помощь студентам 6 05.06.2009 01:27