Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 21.01.2020
Сообщений: 6
1

Не работает шаблон функции с printf, в отличии от cout

30.01.2020, 21:10. Просмотров 277. Ответов 3

Вот такой код. Должен считать среднее арифметическое. С COUT работает нормально, а когда меняю на printf - вычислят не верно. Понимаю, что дело в типе данных, но не соображаю как исправить. Наставьте на путь истинный пожалуйста!

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
#include <windows.h>
#include <conio.h>
#include <stdio.h>
 
template <typename T> T average(T* mas)
{
    double sum = 0;
    printf("Введите 10 значений для заполнения массива.\n");
    for (int i = 0;i < 10;i++)
    {
        scanf("%d", &mas[i]);
    }
    for (int i = 0; i < 10; i++)
    {
        sum += mas[i];
    }
 
    return sum / 10;
}
 
int main(void)
{
    int i1 = GetConsoleCP();
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
 
    int masI[10];
    double masD[10];
    int choice = 0;
 
    printf ("Выберете с какими массивами мы будем работать.\n");
    printf("1 - целые числа\n");
    printf("2 - вещественные числа\n");
    scanf ("%d",&choice);
 
    switch (choice)
    {
    case 1:
        printf("Среднее арифметическое: %d",average(masI));
        break;
    case 2:
        printf("Среднее арифметическое: %lf",average(masD));
        break;
    }
    return(0);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.01.2020, 21:10
Ответы с готовыми решениями:

Оптимизация. Что быстрее работает: cout или printf
Что быстрее работает: cout или printf ????????? Добавлено через 32 минуты ЕЩе вот что: Как...

Замена функций c cout на printf() как это работает?
Здрасвуйте помогите пожалуйсто вообще не догнал как работает вот эта функиция scanf() c cout на ...

Cout в printf
Возможно глупый вопрос, но как переделать cout &lt;&lt; arr - (sum / m) &lt;&lt; &quot; &quot;; в printf? Как только не...

Cout и printf
Привет форумчане, не могу разобраться как правильно записать выражение использую не printf, a cout....

3
4609 / 3101 / 1297
Регистрация: 07.05.2019
Сообщений: 9,580
Записей в блоге: 1
30.01.2020, 21:20 2
Цитата Сообщение от ElenaFireFox Посмотреть сообщение
Вот такой код. Должен считать среднее арифметическое. С COUT работает нормально, а когда меняю на printf - вычислят не верно. Понимаю, что дело в типе данных, но не соображаю как исправить. Наставьте на путь истинный пожалуйста!
Проблема, наверное, здесь. Для double надо "%f"
Цитата Сообщение от ElenaFireFox Посмотреть сообщение
scanf("%d", &mas[i]);
Воспользуйся std::is_integral или std::is_floating_point чтоб задать правильную строку формата

Добавлено через 49 секунд
Цитата Сообщение от ElenaFireFox Посмотреть сообщение
double sum = 0;
Здесь, наверное, надо
C++
1
T sum = 0
1
Грамотный. Безпорно.
16793 / 9692 / 1869
Регистрация: 27.09.2012
Сообщений: 24,052
Записей в блоге: 2
31.01.2020, 11:56 3
Цитата Сообщение от oleg-m1973 Посмотреть сообщение
Для double надо "%f"
%lf
1
0 / 0 / 0
Регистрация: 21.01.2020
Сообщений: 6
01.02.2020, 19:22  [ТС] 4
Спасибо! Справилась)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2020, 19:22

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

printf > cout
Помогите переделать printf(&quot;| %3.2f | %3.1f | %7.5f |\n&quot;,a,b,y); на cout.

printf и cout
У меня возник вопрос, что луче еспользовать в C++, printf/scanf или cout/cin ? Что работает...

cout vs printf
Что лучше и удобней использывать в написаннии программ? cout или printf?

Cout в printf
Здравствуйте, может кто-нибудь помочь переделать cout в printf на 87-88 строках в данной программе?...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.