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

Программа учета результатов игры в гольф - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Misha64
0 / 0 / 0
Регистрация: 28.06.2013
Сообщений: 9
28.06.2013, 19:50     Программа учета результатов игры в гольф #1
Напишите программу, которая запрашивает у пользователя 10 результатов игры в гольф, сохраняя их в массиве. При этом необходимо обеспечить возможность прекращения ввода до ввода всех 10 результатов. Программа должна отобразить все результаты в одной строке и сообщить их среднее значение. Реализуйте ввод, отображение и вычисление среднего в трех отдельных функциях, работающих с массивами.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HardLogin
 Аватар для HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 640
Записей в блоге: 1
29.06.2013, 09:29     Программа учета результатов игры в гольф #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
#include <iostream>
using namespace std;
 
void vvod( int[], int& );
float srednee( int[], int );
void otobrazh( int[], int, float );
 
int main()
{
 int count = 0;
 int a[ 10 ];
 
 cout << "Введите 10 результатов игры в гольф:\n";
 vvod( a, count );
 
 float sredn = srednee( a, count );
 
 otobrazh( a, count, sredn );
 return system( "pause" );
}
 
void vvod( int a[], int &count )
{
 for( ; count < 10; count++ )
 cin >> a[ count ];
}
 
float srednee( int a[], int count )
{
 int sum = 0;
 for( int i = 0; i < count; i++ )
 sum += a[ i ];
 
 return (float)sum / count;
}
 
void otobrazh( int a[], int count, float sredn )
{
 for( int i = 0; i < 70; i++ )
 cout << "-";
 
 cout << "Вы ввели такие результаты:\n";
 
 for( int i = 0; i < count; i++ )
 cout << a[ i ] << " ";
 
 cout << "\nСреднее значение: " << sredn << "\n";
}
Вот только я не знаю как сделать этот пункт
При этом необходимо обеспечить возможность прекращения ввода до ввода всех 10 результатов.
el_gato_de_Ch
35 / 35 / 1
Регистрация: 28.04.2013
Сообщений: 110
29.06.2013, 17:12     Программа учета результатов игры в гольф #3
Цитата Сообщение от HardLogin Посмотреть сообщение
Вот только я не знаю как сделать этот пунк
ммм... как насчёт ввода -1, счёт же в гольфе не может быть отрицательным, ввели -1, прекращаем ввод, придётся только таскать size.
HardLogin
 Аватар для HardLogin
52 / 52 / 1
Регистрация: 20.01.2013
Сообщений: 640
Записей в блоге: 1
29.06.2013, 23:07     Программа учета результатов игры в гольф #4
окс ща будет

Добавлено через 5 минут
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
#include <iostream>
using namespace std;
 
void vvod( int[], int& );
float srednee( int[], int );
void otobrazh( int[], int, float );
 
int main()
{
 int count = 0;
 int a[ 10 ];
 
 cout << "Введите 10 результатов игры в гольф:\n";
 vvod( a, count );
 
 float sredn = srednee( a, count );
 
 otobrazh( a, count, sredn );
 return system( "pause" );
}
 
void vvod( int a[], int &count )
{
 for( ; count < 10; count++ )
 {
      cin >> a[ count ];
      if( a[ count ] < 0 )break;
 }
}
 
float srednee( int a[], int count )
{
 int sum = 0;
 for( int i = 0; i < count; i++ )
 sum += a[ i ];
 
 return (float)sum / count;
}
 
void otobrazh( int a[], int count, float sredn )
{
 for( int i = 0; i < 70; i++ )
 cout << "-";
 
 cout << "Вы ввели такие результаты:\n";
 
 for( int i = 0; i < count; i++ )
 cout << a[ i ] << " ";
 
 cout << "\nСреднее значение: " << sredn << "\n";
}
souljar
Сообщений: n/a
26.10.2014, 03:14     Программа учета результатов игры в гольф #5
Не пойму ошибку! При введении отрицательного значения, ввод прекращается, а массив и дальше заполняется типо таких значений 4.31109е-308.

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
#include <iostream>
using namespace std;
const int Size = 10;
int vvod(double ar[], int limit);
void show(const double ar[], int n);
void average(double ar[], int n);
int main()
{
    setlocale (0,"");
    double score[Size];
    double p = vvod(score, Size);
    show(score, Size);
    cout << "\nСреднее значение результатов:\n";
    average(score, Size);
    return 0;
    
}
int vvod(double ar[], int limit)
{
    setlocale (0,"");
    double temp;
    int i;
    for (i = 0; i < limit; i++)
    {
        cout << "Вводите значение#" << (i + 1) << ": ";
        cin >> temp;
        if (!cin)
        {
            cin.clear();
            while (cin.get() != '\n')
               continue;
            cout << "\nПлохой ввод, процесс прекращен!\n";
            break;
        }
        else if (temp < 0)
        break;
        ar[i] = temp;
        
    }
    return i;
}
void show(const double ar[], int n)
{
    setlocale (0,"");
    cout << "Результаты игроков:\n\n";
    for (int i = 0; i < n; i++)
    {
        cout << "Игрок #" << (i + 1) << ": ";
        cout << ar[i] << endl;
    }
}
void average(double ar[], int n)
{
    setlocale (0,"");
    double sum;
    double sred;
    for (int i = 0; i < n; i++)
    {
        sum += ar[i];
        sred = sum / n;
    }
    cout << sred << endl;
}
el_gato_de_Ch
35 / 35 / 1
Регистрация: 28.04.2013
Сообщений: 110
11.11.2014, 12:00     Программа учета результатов игры в гольф #6
souljar, так у Вас локальный массив фиксированной величины, конечно там будет мусор.
Все неинициализированные явно локальные переменные инициализируются мусором.
Для того чтобы там не было подобных значений массив необходимо обнулять в начале запуска программы. Либо сделать его глобальным, но первый вариант предпочтительней.
IpHuman
 Аватар для IpHuman
12 / 12 / 1
Регистрация: 28.01.2015
Сообщений: 22
12.03.2016, 21:12     Программа учета результатов игры в гольф #7
Вот мой пример решения этой задачи.
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
#include <iostream>
const int ArSize = 10;
int fill_in(int arr[], int n);
void show_arr(const int arr[], int n, double av_val);
double average(const int arr[], int n);
int main()
{
    using namespace std;
    int golf[ArSize];
    int size = fill_in(golf, ArSize);
    double av_val = average(golf, size);
    show_arr(golf, size, av_val);
    return 0;
}
int fill_in (int arr[], int n)
{
    using namespace std;
    int temp;
    int i;
    for (i = 0; i < n; i++)
    {
        cout << "Enter value #" << i + 1 << ": ";
        cin >> temp;
        if (!cin)
        {
            cin.clear();
            while (cin.get() != '\n')
                continue;
            cout << "Bad input. Process terminated!\n";
                break;
        }
        else if (temp < 0)
            break;
        arr[i] = temp;
    }
    return i;
}
double average(const int arr[], int n)
{
    double sum = 0.0;
    for (int i = 0; i < n; i++)
        sum += arr[i];
    double av_val = sum / n;
    return av_val;
}
void show_arr(const int arr[], int n, double av_val)
{
    using namespace std;
    cout << "Here is the results: ";
    for (int i = 0; i < n; i++)
        cout << arr[i] << " ";
    cout << "\nAverage value of results = " << av_val;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2016, 23:10     Программа учета результатов игры в гольф
Еще ссылки по теме:

C++ Программа учета заявок
Нужна программа учета диких животных C++

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

Или воспользуйтесь поиском по форуму:
Katya T
0 / 0 / 0
Регистрация: 28.05.2016
Сообщений: 1
28.05.2016, 23:10     Программа учета результатов игры в гольф #8
вот моя реализация, решила обойтись без прототипа
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
#include <iostream>
#include <cstdlib>
 
 
using namespace std;
const int r=2;
int b;
int vod[r];
 
 
void vvod()
{
 
    cout<<"vvedite znahenie, dlya vihoda najmite '0'"<<endl;
    for(int i=0;i<r;i++)
    {
        cout<<"vvedite hislo"<<endl;
    cin>>b;
 
    if (b==0)
    {
         cout<<"exit";
        exit(0);
    }
    vod[i]=b;
 
 
    }
 
    }
 
    void otobr()
    {
        for(int i=0;i<r;i++)
        cout <<"vashi znacheniya "<<i<<"  | element  "<< vod[i]<<endl;
    }
 
    void sr()
    {
        int sum=0;
        int sum1=0;
        for(int i=0;i<r;i++)
        {
 
        sum=sum+vod[i];
        sum1=sum/r;
 
        }
         cout<<"srednee chislo ravno "<<sum1;
    }
 
 
 
    int main()
    {
        vvod();
        otobr();
        sr();
        return 0;
    }
Yandex
Объявления
28.05.2016, 23:10     Программа учета результатов игры в гольф
Ответ Создать тему
Опции темы

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