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

Форматированный ввод данных в массив. Поиск среднего значения. - C++

Восстановить пароль Регистрация
 
AIKru
1 / 1 / 0
Регистрация: 06.12.2009
Сообщений: 9
07.11.2010, 14:50     Форматированный ввод данных в массив. Поиск среднего значения. #1
Дана задача:
Форматированный ввод данных в массив. Поиск среднего значения.

Я выбрал задачу такую: есть 8 студентов, ими написано 4 экзамена. Нужно найти максимальную, минимальную оценки, а так же среднюю оценку для каждого студента и среднюю оценку для каждого экзамена.

Как организовать форматированный ввод данных в массив (эти самые оценки в пределах от 0 до 100)? Как поправить программу, чтобы она считала среднюю оценку для каждого экзамена правильно (Я её закомментил /* */)?
PS: Как отсортировать массив по возрастанию?

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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "stdafx.h"
#include <iostream> //директивы препроцессора
 
using std::cout;
using std::endl;
using std::ios;
 
#include <iomanip> //заголовочный файл, нужен для использования setw()
 
 
using std::setw;
using std::setiosflags;
using std::setprecision;
 
const int students = 8; //Число студентов
const int exams = 4; // Число экзаменов/рейтингов (3 рейтинга + экзамен =) )
 
int minimum (int [] [exams], int, int);
int maximum (int [] [exams], int, int);
double average (int [], int);
double averageexam (int [], int);
void printArray ( int [] [exams], int, int);
 
int main()
{
    int studentGrades [students][exams] =
        { { 54, 98, 88, 93},
          { 96, 87, 35, 54},
          { 94, 21, 71, 98},
          { 88, 77, 55, 77},
          { 75, 76, 67, 68},
          { 77, 88, 88, 88},
          { 88, 99, 87, 49},
          { 54, 68, 87, 88} };
 
    cout << "Array:\n";
    printArray ( studentGrades, students, exams );
    cout << "\n\nThe worst grade: "
         << minimum ( studentGrades, students, exams )
         << "\nThe best grade: "
         << maximum ( studentGrades, students, exams ) << '\n';
 
    for ( int person = 0; person < students; person++ )
        cout << "Average grade of the student " << person << " is equal "
             << setiosflags ( ios::fixed | ios::showpoint)
             << setprecision (2)
             << average ( studentGrades [person], exams ) << endl;
/*
    for ( int person = 0; person < exams; person++ )
        cout << "The average grade on the exam " << person << " is equal "
             << setiosflags ( ios::fixed | ios::showpoint)
             << setprecision (2)
             << averageexam ( studentGrades [person], students ) << endl;
*/
    int d;
    scanf("%i", &d);
    return 0;
}
//Поиск минимальной оценки
int minimum ( int grades[] [exams], int pupils, int tests )
{
    int lowGrade = 100;
 
    for ( int i = 0; i < pupils; i++ )
 
        for ( int j = 0; j < tests; j++ )
 
            if ( grades[i][j] < lowGrade )
                lowGrade = grades[i][j];
    return lowGrade;
}
 
//Поиск максимальной оценки
int maximum ( int grades[] [exams], int pupils, int tests )
{
    int highGrade = 0;
 
    for ( int i = 0; i < pupils; i++ )
 
        for ( int j = 0; j < tests; j++ )
 
            if ( grades[i][j] > highGrade )
                highGrade = grades[i][j];
    return highGrade;
}
 
//Определение средней оценки для каждого студента
double average ( int setOfGrades [], int tests)
{
    int total = 0;
 
    for ( int i = 0; i < tests; i++)
        total +=setOfGrades[i];
 
    return static_cast<double>(total) / tests;
}
/*
//Определение средней оценки для каждого экзамена
double averageexam ( int setOfGrades [], int tests)
{
    int total = 0;
 
    for ( int j = 0; j < tests; j++)
        total +=setOfGrades[j];
 
    return static_cast<double>(total) / tests;
}
*/
//Вывод массива
void printArray( int grades[] [exams], int pupils, int tests)
{
    cout << "Exam N\t\t\t  [0]  [1]  [2]  [3]";
 
    for ( int i=0; i < pupils; i++) {
        cout << "\nGrades of the student [" << i << "] ";
 
        for ( int j = 0; j < tests; j++ )
            cout << setiosflags(ios::left) << setw(5)
                 << grades[i][j];
    }
}
Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2010, 14:50     Форматированный ввод данных в массив. Поиск среднего значения.
Посмотрите здесь:

C++ Задача на масив.Ввод дробей и вычисление среднего значения дроби!
C++ Массив поиск среднего значения
C++ форматированный ввод\вывод
форматированный ввод C++
форматированный ввод/вывод в файл C++
Форматированный ввод-вывод C++
C++ Реализовать ввод, вывод и поиск данных
C++ Поиск среднего значения массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 01:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru