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

Найти среднее арифметическое таких чисел в диапазоне [a; b], у которых последняя цифра равна 7

07.12.2015, 21:43. Показов 1550. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вводятся числа a и b. Найти среднее арифметическое таких чисел в диапазоне [a;b], у которых последняя цифра равна 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
#include<iostream>
#include<cmath>
#include<conio.h>
 
using namespace std;
int main()
{
 
    double a, b, z, p, i;
    cout << "Enter range: " << endl;
    cin >> a >> b;
    z = 0;
    p = 0;
    if (a < b){
        for (int i = a; i <= b; i++){
            if ((i % 10) == 7){
                z = z + i;
                p++;
            }
        }
 
    }
    else{
        for (int i = b; i <= a; i++){
            if ((i % 10) == 7){
                z = z + i;
                p++;
            }
        }
    }
    cout << "Average= " << z / p << endl << endl;
    system("Pause");
    return 0;
}
Верно ли составленна программа? Хотелось бы узнать у более опытных пользователей.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2015, 21:43
Ответы с готовыми решениями:

Найти среднее арифметическое таких чисел в диапазоне [a; b], у которых последняя цифра равна 7 (цикл for)
Вводятся числа a и b. Найти среднее арифметическое таких чисел в диапазоне , у которых последняя...

Вводятся числа a и b. Найти количество чисел в диапазоне [a;b], у которых последняя цифра равна 7.
Помогите пожалуйста с программой. Задание: Вводятся числа a и b. Найти количество чисел в диапазоне...

Найти количество чисел в диапазоне [a;b], у которых последняя цифра равна 7
Вводятся числа a и b. Найти количество чисел в диапазоне , у которых последняя цифра равна 7...

Найти количество и среднее арифметическое четырехзначных чисел, где 1-я цифра равна 4-ой, а 2-я равна 3-ей
найдите количество и среднее арифметическое натуральных четырехзначных чисел, в которых первое...

7
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
07.12.2015, 21:58 2
а запустить и проверить не пробовали?или вы думаете кому то интересно делать это вместо вас?
0
2218 / 1715 / 723
Регистрация: 27.07.2012
Сообщений: 5,112
07.12.2015, 21:59 3
Лучший ответ Сообщение было отмечено icrik17 как решение

Решение

Цитата Сообщение от icrik17 Посмотреть сообщение
Верно ли составленна программа?
В целом, верно, но везде:
1.
C++
1
double a, b, z, p, i;
Зачем double? Речь в задаче явно о целых числах, раз спрашивают про посл.цифру числа. Для всех этих переменных нужен тип int.

2.
Дублирование кода для вариантов a > b и a <= b. Можно было бы так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int amin, bmax;
    if (a < b)
    {
        amin = a;
        bmax = b;
    } else
    {
        amin = b;
        bmax = a;
    }
    for (int i = amin; i <= bmax; i++) {
        if ((i % 10) == 7){
            z = z + i;
            p++;
        }
    }
Ну или по-взрослому:
C++
1
int amin = std::min(a,b), bmax = std::max(a,b)
1
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
07.12.2015, 22:00 4
что бы кучу лишнего кода не писать можно сделать так
C++
1
2
if(a>b)
 swap(a,b);
0
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 5
07.12.2015, 22:00  [ТС] 5
Нет, я запускал, но меня смущают числа на выходе
0
2218 / 1715 / 723
Регистрация: 27.07.2012
Сообщений: 5,112
07.12.2015, 22:07 6
Цитата Сообщение от Dimension Посмотреть сообщение
что бы кучу лишнего кода не писать можно сделать так
Можно, но несколько нелогично. Мы ввели a и b, и по-хорошему не должны их изменять.
0
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
07.12.2015, 22:33 7
John Prick, бред
0
4816 / 2276 / 287
Регистрация: 01.03.2013
Сообщений: 5,943
Записей в блоге: 27
07.12.2015, 23:03 8
Бред в этой задаче, это:
1) считать через цикл +1 с проверкой %10
2) считать через цикл вообще

C++
1
2
3
4
5
6
int main() {
    int a,b; cin>>a>>b;
    int c=a/10*10+7; c+=c<a ? 10 : 0;
    int d=b/10*10+7; d-=d>b ? 10 : 0;
    cout<<(c+d)/2.0; 
}
PS эту задачу надо задавать на олимпиадах с проверкой на диапазонах [100, 10^12], например.
0
07.12.2015, 23:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2015, 23:03
Помогаю со студенческими работами здесь

В диапазоне от N до М вывести все числа, последняя цифра которых равна K
В диапазоне от N до М вывести все числа, последняя цифра которых равна K

Найдите количество и среднее арифметическое натуральных четырехзначный чисел, у которых первая цифра равна третьей,
Найдите количество и среднее арифметическое натуральных четырехзначный чисел, у которых первая...

Двумерный массив. Как найти среднее арифметическое элементов для каждой строки, у которых последняя нечетная цифра
Двумерный массив. Как найти среднее арифметическое элементов для каждой строки, у которых последняя...

Для каждого столбца массива найти среднее арифметическое элементов, у которых последняя цифра делит само число
Дан двумерный массив целых чисел. Написать программу, которая для каждого столбца массива находит...

Из всех трехзначных чисел вывести количество тех, сумма цифр которых равна A, а последняя цифра равна B
Моя программа не работает, проверьте её пожалуйста. Program first ; Var A, B, k, p3, p2, p1, s,...

Вычислить среднее арифметическое элементов, у которых последняя цифра нечетная
для каждой строки массива находит среднее арифметическое элементов, у которых последняя цифра...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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