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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2015, 10:45   #1
textyre
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 12
По умолчанию Найти несколько максимальных чисел и запомнить их индекс

Прошу ткнуть в ошибку, не понимаю где я ее допустил - в цикле?
С 58 строки идет поиск максимального числа и запоминание его индекса, я хочу, чтобы записывало таких несколько, а мне всегда только одно число записывается.
Код:
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <clocale>
#include <string.h>
#include <istream>
#include <ctime>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "rus");
    double **matr, *str;
    int N, M, CHIS;
    double mas[5];
    memset(mas, '0', 5);
    int j = 0, i = 0, b = 0;
    int count = 0, n = 0, max = 0; int index = 0;
    cout << "Введите кол-во строк = ";
    cin >> N;
    cout << "Введите кол-во столбцов = ";
    cin >> M;
    cout << "Введите кол-во наибольшее число матрицы (10 - веществ. число до 1, 100 - до 10 и 1000 - до 100) = ";
    cin >> CHIS;
    str = new double[M];
    matr = new double*[N];
    for (i = 0; i < N; i++)
        matr[i] = new double[M];
    srand(time(NULL));
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
        {
            matr[i][j] = static_cast<double>(rand() % CHIS) / 10;//создание вещественной квадратной матрицы
        }
    }
    for (i = 0; i < N; i++)
    {
        cout << endl;
        for (j = 0; j < M; j++)
            cout << setw(5) << matr[i][j];
        cout << endl;
    }
    for (j = 0; j < M; j++)
    {
        for (i = 0; i < N; i++)
        {
            if (matr[i][j] > N && M)//цикл определения столбцов с числами больше заданного размера
            {
                count++;
                cout << "Столбец " << j << endl;
            }
        }
        str[j] = count;//запоминание в новом массиве кол-ва элементов в каждом столбец 
        count = 0;
    }
    for (j = 0; j < M; j++)
    {
        for (i = 0; i < 5; i++)
        {
            if (str[j] >= max)//и тут у меня находит и запоминает лишь один элемент
            {
                max = str[j];
                mas[i] = j;
            }
        }
    }
    for (i= 0; i < 5; i++)
        cout << mas[i];
    cout << endl;
    for (j = 0; j < M; j++)
        cout << str[j];
    cout << endl;
    cout << max<<endl;
    cout << "Какой вывести столб?";
    cin >> n;
        for (i = 0; i < N; i++)
            cout << matr[i][n]<<" ";
    system("pause");
    return 0;
}
textyre вне форума Ответить с цитированием
Старый 10.05.2015, 12:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Во-первых:
Код:
int maslen=0;
    for (j = 0; j < M; j++)
    {
        for (i = 0; i < 5; i++)
        {
            if (str[j] >= max)//и тут у меня находит и запоминает лишь один элемент
            {
                max = str[j];
                mas[maslen++] = j;
            }
        }
    }
Во-вторых: mas не нужно делать double. Ему нужно давать тип int, раз ты запоминаешь индексацию.
Да, и в третьих: переменная max тут в целом то лишняя. Можно и без нее обойтись.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица, несколько максимальных с индексами (язык C) zheka317 Помощь студентам 14 12.10.2013 11:19
Лаба на процедуры/функции (Одномерный массив содержит несколько пар чисел (основа и высота треугольника). Найти сумму площадей kinash96 Помощь студентам 2 11.10.2013 17:31
найти два максимальных элемента в массиве Sylar9 Общие вопросы C/C++ 5 27.05.2012 14:18
С++ while Нахождение 2 максимальных чисел из 10 novuiPolzovatel Помощь студентам 1 20.04.2012 20:21
Ввести несколько чисел (кол-во чисел запрашивать с экрана). Определить, сколько чисел, меньших заданного Lirika Помощь студентам 0 08.05.2010 21:39