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

По базе знаний определить, СКОЛЬКО экспертов оценили продукт А выше продукта Б и вывести результаты на экран

16.10.2017, 18:33. Показов 798. Ответов 5

Студворк — интернет-сервис помощи студентам
Дана база знаний в виде текстового файла, включающая в себя следующие поля:
- номер продукта;
- номер эксперта;
- место, на которое эксперт поставил продукт.
baza.txt
***
Необходимо вывести на экран, СКОЛЬКО экспертов поставили продукт m выше продукта n (дали ему место с меньшим значением). Сейчас же получается такая вот фигня:
По базе знаний определить, СКОЛЬКО экспертов оценили продукт А выше продукта Б и вывести результаты на экран

Вместо ноликов и единичек должно быть указано количество экспертов, которые считают один продукт лучше другого.

Текст программы:
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
#include <iostream>
#include <fstream>
#include <math.h>
#include <stdlib.h>
#include <iomanip>
using namespace std;
struct O {
    int nomer_prod;
    int nomer_exp;
    int ocenka;
};
int main()
{
    setlocale(LC_ALL, "Russian");
    int const size = 7;
 
    O O[size];
    ifstream f("baza.txt");
    for (int i = 0; i < size; i++)
    {
        f >> O[i].nomer_prod;
        cout << endl;
        cout << "Номер продукта: " << " " << O[i].nomer_prod << endl;
        int summa;
        summa = 0;
        for (int j = 0; j < 5; j++)
        {
            f >> O[j].nomer_exp >> O[j].ocenka;
            cout << "Номер эксперта: " << O[j].nomer_exp << " " << "Место: " << O[j].ocenka << " " << endl;
            summa = summa + O[j].ocenka;
        }
 
        cout << "Суммарный ранг: " << summa << endl;
        cout << endl;
    }
 
    int k[size][size];
    for (int i = 0; i < size; i++)
        for (int j = 0; j < size; j++)
        {k[i][j] = 0;}
 
    for (int m = 0; m<size; m++)
        for (int n = 0; n<size; n++)
        {
            if (O[m].ocenka < O[n].ocenka)
            {k[m][n]++;}
            cout << "Продукт " << m << " лучше продукта " << n << ": " << k[m][n] << endl;
        }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2017, 18:33
Ответы с готовыми решениями:

Файл: В файле input.txt находятся результаты контрольной, определить и вывести на экран средний балл.
В файле input.txt находятся результаты контрольной, определить и вывести на экран средний балл.

Определить, сколько из К кг исходного продукта получится сушеного
Надо написать программы на пару заданий. поможете? 1)Известно, что в состав сушеного продукта...


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

Или воспользуйтесь поиском по форуму:
5
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
16.10.2017, 18:37 2
вы же сами им задали такого значения k[i][j] = 0; и k[m][n]++;
0
0 / 0 / 1
Регистрация: 02.09.2015
Сообщений: 75
16.10.2017, 20:52  [ТС] 3
Если не задать k[i][j]=0, то будет вместо чисел вот такое: -89652211221
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
16.10.2017, 21:05 4
Корлет, верно ибо без инициализации значение берется из памяти.. и так, у нас есть матрица k[size][size] если в неё ничего не записать мы получим значения типа -89652211221 => записываем туда 0, делаем проверку if (O[m].ocenka < O[n].ocenka) => увеличиваем на 1, если условие выполняется {k[m][n]++;} , программа работает именно так как вы ей сказали, все верно
0
0 / 0 / 1
Регистрация: 02.09.2015
Сообщений: 75
16.10.2017, 21:11  [ТС] 5
Вот я и прошу, чтобы вы подсказали мне, как организовать так, чтобы считало кол-во экспертов, поставивших продукт m выше продукта n.
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
16.10.2017, 21:18 6
вероятно вам нужно сравнивать номера продуктов из файла с вашей матрицей k, которую лучше записать как k[size][nomer_ocenka]; и оценки поставленные этим же продуктам экспертами
0
16.10.2017, 21:18
Ответ Создать тему
Опции темы

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