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

Написать программу, которая определяет количество учеников в классе, чей рост превышает средний. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
Temirlan90
 Аватар для Temirlan90
131 / 131 / 8
Регистрация: 30.09.2010
Сообщений: 333
12.01.2011, 12:32     Написать программу, которая определяет количество учеников в классе, чей рост превышает средний. #1
Написать программу, которая определяет количество учеников в классе, чей рост превышает средний.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
const int size = 5;
 
int main() {    
    setlocale(LC_ALL,"Russian");
    int arr[size], sr, sum = 0, kol = 0;
    printf("*** Анализ роста учеников ***\n");
    printf("Введите % человек\n", size);
    printf("Введите рост (см) и нажмите <Enter>.\n");
    for(int i = 0; i < size; i++) {
        printf("-> ");
        scanf("%i", &arr[i]);
        sum += arr[i];      
        sr = sum / size;
        if(arr[i] > sr) {
            kol++;
        }       
    }
    printf("Средний рост: %i см", sr);
    printf("\nУ %i человек рост превышает средний.", kol);
    system("pause >> void");
}
количество не правильно считает, почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2011, 12:32     Написать программу, которая определяет количество учеников в классе, чей рост превышает средний.
Посмотрите здесь:

Массив: определить количество учеников в классе, чей рост превышает средний. C++
C++ Средний рост учеников
C++ Рост учеников класса задан в виде массива. Определить средний рост мальчиков и девочек
Написать программу, определяющий рост учеников, которых больше среднего роста по классу C++
Определить количество учеников в классе, чей рост превышает средний C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eczo
37 / 37 / 1
Регистрация: 15.12.2010
Сообщений: 110
12.01.2011, 12:46     Написать программу, которая определяет количество учеников в классе, чей рост превышает средний. #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
#include <iostream>
 
const int size = 5;
 
int main() {    
        setlocale(LC_ALL,"Russian");
        int arr[size], sr, sum = 0, kol = 0;
        printf("*** Анализ роста учеников ***\n");
        printf("Введите % человек\n", size);
        printf("Введите рост (см) и нажмите <Enter>.\n");
        for(int i = 0; i < size; i++) {
                printf("-> ");
                scanf("%i", &arr[i]);
                sum += arr[i];          
                sr = sum / size;
                   
        }
     for(int i = 0; i < size; i++) {
        if(arr[i] > sr) 
                        kol++;        
         }
        printf("Средний рост: %i см", sr);
        printf("\nУ %i человек рост превышает средний.", kol);
        system("pause >> void");
}
не лепите все действия в один цикл. в этом была оплошность тк вы сравнивали рост ученика не с со средней всего класса а со средней учеников стоящих до него в очереди)))
Temirlan90
 Аватар для Temirlan90
131 / 131 / 8
Регистрация: 30.09.2010
Сообщений: 333
12.01.2011, 12:50  [ТС]     Написать программу, которая определяет количество учеников в классе, чей рост превышает средний. #3
eczo, а как так?? почему в одном цикле не сработало?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
12.01.2011, 12:55     Написать программу, которая определяет количество учеников в классе, чей рост превышает средний. #4
Temirlan90, мало того - для подобных вычислений нужно использовать вещественные типы данных (float, double), т.к. в результате целочисленного деления среднее будет считаться с округлением до меньшего целого, а это не правильно...
Card1nal
6 / 6 / 0
Регистрация: 04.01.2010
Сообщений: 118
12.01.2011, 12:56     Написать программу, которая определяет количество учеников в классе, чей рост превышает средний. #5
Вот пример :
1, 2, 3, 4, 200
Сколько человек выше среднего? 1
А у тебя:
1) 1 : сумма = 1, 1/5 = 0, входит
2) 2: сумма = 3, 3/5 = 0, входит
3) 3: сумма = 6, 6/5 = 1, входит
4) 4: сумма = 10, 10/5 = 2, входит.
5) 200: сумма = 210, 210 / 5 = 42, входит.
Temirlan90
 Аватар для Temirlan90
131 / 131 / 8
Регистрация: 30.09.2010
Сообщений: 333
12.01.2011, 13:17  [ТС]     Написать программу, которая определяет количество учеников в классе, чей рост превышает средний. #6
easybudda, да я в курсе, мне просто в лом было=)

Добавлено через 8 минут
easybudda,
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
#include <iostream>
 
const int size = 5;
 
int main() {    
        setlocale(LC_ALL,"Russian");
        float arr[size], sr, sum = 0;
        int kol = 0;
        printf("*** Анализ роста учеников ***\n");
        printf("Введите % человек\n", size);
        printf("Введите рост (см) и нажмите <Enter>.\n");
        for(int i = 0; i < size; i++) {
                printf("-> ");
                scanf("%f", &arr[i]);
                sum += arr[i];          
                sr = sum / size;                   
        }
        for(int i = 0; i < size; i++) {
            if(arr[i] > sr) 
                kol++;        
        }
        printf("Средний рост: %1.2f см", sr);
        printf("\nУ %i человек рост превышает средний.", kol);
        system("pause >> void");
}
так правильно=).

Добавлено через 1 минуту
А у меня вопрос, двумерные массивы, это сложно?
Yandex
Объявления
12.01.2011, 13:17     Написать программу, которая определяет количество учеников в классе, чей рост превышает средний.
Ответ Создать тему
Опции темы

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