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

Метод ранга. Неверно выводит результат - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функции. Обработка числовых последовательностей http://www.cyberforum.ru/cpp-beginners/thread835606.html
Написать программу, последовательно выполняющую перечисленные ниже задачи. Предусмотреть печать приглашения на ввод (строки, поясняющей пользователю, какие действия от него ждет программа) и информативный вывод данных. Задание 1. Длина последовательности целых чисел – случайное число от 10 до 30. Последовательность генерируется случайным образом или вводится с клавиатуры по желанию...
C++ Microsoft Visual Studio Помогите пожалуйста! Задание: Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10. Найти сумму модулей элементов, расположенных выше главной диагонали. Заранее спасибо огромное! http://www.cyberforum.ru/cpp-beginners/thread835597.html
C++ Файл: Во всем тексте вставить переход на новую строку там, где есть два или больше пропусков подряд.
Дано такое задание:Во всем тексте вставить переход на новую строку там, где есть два или больше пропусков подряд. Я учил циклы,одно-и двумерные массивы,строки. Заранее спасибо.
C++ Вычисления функций с использованием их разложения в степенной ряд. Объяснить
Условие Для х, изменяющегося от a до b (интервал целиком лежит внутри интервала, указанного в третьей колонке) с шагом , вычислить функцию y=f(x), используя ее разложение в степенной ряд (вторая колонка) в двух случаях: а) для заданного количества слагаемых N (величина зависит от свойств степенного ряда, примерное значение N указано в четвёртой колонке); б) для заданной точности  (близкое...
C++ Массив: Проверить, есть ли два элемента среди отрицательных с максимальным значением? http://www.cyberforum.ru/cpp-beginners/thread835589.html
Есть ли два элемента среди отрицательных с максимальным значением?
C++ Пусть v1=v2=0; v3=1,5; vi=(i+1)/(i*i+1)*(vi-1)-(vi-2)*(vi-3), i=4,5, Пусть v1=v2=0; v3=1,5; vi=((i+1)/(i*i+1)*(vi-1)-(vi-2)*(vi-3)), i=4,5,.. Дано натуральное n (n>=4).Получить vn.* Подскажите в чем ошибка,ведь результирующее число не должно быть в -39 степени. #include <iostream> #include <clocale> using namespace std; int main() { setlocale(LC_CTYPE,"Russian"); // установка русского языка подробнее

Показать сообщение отдельно
Spotter
8 / 8 / 2
Регистрация: 09.11.2010
Сообщений: 130
15.04.2013, 11:01  [ТС]     Метод ранга. Неверно выводит результат
Tulosba, я извиняюсь, что я Вас и так уже сильно напрягаю, просто давно с консольными приложениями не работал, последние вопросы ещё.

Результаты считает и выводит все верно, с этим уже все хорошо. 2 нюанса осталось. Не работает моя сортировка, и поиск наилучшего варианта, наилучший получается вариант 3, а мне выдает вариант 2.

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
77
78
79
#include <iostream>
#include <conio.h>
#include <clocale>
#include <iomanip>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    //Введем исходную матрицу оценок экспертов 
 
    int s[6][3] = {{1, 2, 3}, {2, 1, 3}, {2, 3, 1}, {3, 2, 1}, {3, 1, 2}, {1, 2, 3}};
    int i, j; 
    int k[6];
    float w[3];
 
    //выведем нашу матрицу на экран
    cout << "Наш массив:\n"; 
    for (i = 0; i < 6; i++) {
        for (j = 0; j < 3; j++)
            cout << s[i][j];
        putchar('\n');
    }
 
    //посчитаем матрицу нормированных оценок
    float z[6][3];
    for (i = 0; i < 6; i++) {
        int sum = 0;
        for (j = 0; j < 3; j++)
        {
            sum += s[i][j];
        }
        k[i] = sum;
    }
    
    for (i = 0; i < 6; i++) {
        for (j = 0; j < 3; j++)
        {
            z[i][j] = float(s[i][j])/float(k[i]);
        }
    }    
 
    //вывод матрицы нормированных оценок
    cout << "\nМатрица нормированных оценок: \n";
    cout.precision(3);
    for (i = 0; i < 6; i++) {
        for (j = 0; j < 3; j++) 
        cout << fixed << setw(6) << z[i][j];
        putchar('\n');
    }
    cout << "\n";
 
    //найдем веса целей
    for (j = 0; j < 3; j++) {
        w[j] = (z[0][j] + z[1][j] + z[2][j] + z[3][j] + z[4][j] + z[5][j])/6; 
        cout << j+1 << " Альтернатива: " << w[j] << endl;
    }
 
    //сортируем по убыванию
    int temp;
    if (w[i] > w[j] && i < j) {
        temp = w[i];
        w[i] = w[j];
        w[j] = temp;
    }
 
    //найдем наилучший вариант
    float maxW = w[0];
    int variant = 0;
    for (j = 1; j < 3; j++) {
        if (w[j] > maxW) {
            maxW = w[j];
            variant = j;
        }
    }
 
    cout << "\nНаилучшей эффективной альтернативой будет вариант: " << variant;
    getch();
}
Метод ранга. Неверно выводит результат
 
Текущее время: 10:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru