С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sergikx
1 / 1 / 0
Регистрация: 10.09.2014
Сообщений: 59
#1

Как исправить? warning C4244: 'initializing' : conversion from 'int' to 'float' [Код внутри] - C++

25.11.2014, 20:39. Просмотров 440. Ответов 2
Метки нет (Все метки)

В результате если ввести 3 5 6 9 11 (оно должно сложить 5+6+9 и разделить эту сумму на три) выдаёт ответ 6,00000, хотя по идее должно 6,666...

Добавлено через 26 секунд
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
#include <stdio.h>
#include <stdlib.h>
#include <locale>
int main()
{
    setlocale(LC_ALL, "Russian");
    int k;
    int *mas;
     int n;
    int i;
    int min;
    int max;
    int s=0;
    float m;
    printf("Введите количество оценок:");
    do
        {
         scanf_s("%d",&n);
         if (n<3)
         {
          printf("Введите 3 или больше оценок:");
         }
        }while(n<3);
    mas=(int*)malloc(n*sizeof(int));
    for(i=0;i<n;i++)
    {
    printf("\nВведите оценку:");
        do
        {
            k=scanf_s("%d",&mas[i]);
                if (k==0)
                {
                    fflush(stdin);
                    printf("\nОшибка,введите число:");
                }
        }while(k==0);
    }
min=mas[0];
for(i=0;i<n;i++)
    if (mas[i]<mas[0])
    {
        min=mas[i];
    }
max=mas[0];
for(i=0;i<n;i++)
    if (mas[i]>mas[0])
    {
        max=mas[i];
    }
for(i=0;i<n;i++)
{
    s+=mas[i];
}
    m=(s-min-max)/(n-2);
printf("%f",m);
free(mas);
system("pause");
return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2014, 20:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как исправить? warning C4244: 'initializing' : conversion from 'int' to 'float' [Код внутри] (C++):

warning C4244: =: преобразование "double" в "float - C++
Объясните нубу пожалуйста, почему выкидывает это предупреждение ? warning C4244: =: преобразование &quot;double&quot; в &quot;float&quot;, возможна потеря...

Warning C4244: return: преобразование "double" в "float", возможна потеря данных - C++
помогите разобраться. пишу программу в функции выдает ошибку в строке с return &quot;warning C4244: return: преобразование &quot;double&quot; в &quot;float&quot;,...

Warning C4244: =: преобразование "double" в "float", возможна потеря данных - C++
Возникла проблема Решаю лабу, написал код, выдает ошибку (warning C4244: =: преобразование &quot;double&quot; в &quot;float&quot;, возможна потеря данных) ...

warning C4244: =: преобразование "double" в "float", возможна потеря данных - C++
Вот код. Работало, теперь не работает. Не пойму в чём дело. #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; ...

Warning C4244: инициализация: преобразование "__int64" в "int", возможна потеря данных - C++
Что за предупреждение вылезает? Как исправить? (16 строка): warning C4244: инициализация: преобразование &quot;__int64&quot; в &quot;int&quot;, возможна...

ОШИБКА [Error] cannot convert 'int*' to 'float*' for argument '1' to 'void Syma(float*,int*,int) - C++
Какая то проблема с указателями,незнаю,не хочет щитать суму парних чисел в второй подпрограме.Извиниет за ошибки.Не владею руским.Помогите...

2
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
3969 / 2193 / 553
Регистрация: 18.10.2014
Сообщений: 3,802
25.11.2014, 21:01 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Sergikx Посмотреть сообщение
В результате если ввести
Во-первых, не надо придумывать. В коде нет ни одного упоминания типа 'float'. Поэтому никакого "warning C4244: 'initializing' : conversion from 'int' to 'float'" тут быть не может.

В-вторых, печатать переменную типа 'int' через формат '%f' - запрещается.

В-третьих, смотрим Распространенные ошибки. Чтобы получить нецелый результат

C++
1
2
3
4
double m;
...
m = (double) (s - min - max) / (n-2);
printf("%lf", m);
1
Sergikx
1 / 1 / 0
Регистрация: 10.09.2014
Сообщений: 59
25.11.2014, 21:55  [ТС] #3
TheCalligrapher, cпасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2014, 21:55
Привет! Вот еще темы с ответами:

Error C3861 & warning C4244 - C++
Как убрать предупреждение от сюда? char str; Edit_GetText(hPlenght, str, sizeof(str) - 1); g_lenght = strtod(str, NULL); warning...

Программа выдаёт ошибку: warning C4244 - C++
Программа выдаёт ошибку: warning C4244: '=' : conversion from 'double' to 'float', possible loss of data. Как с этим бороться? #include...

Не понимаю ошибку invalid conversion from 'int' to 'int* - C++
Код программы следующий #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int swap (int *a, int *b, int *c) { ...

[Error] invalid conversion from 'int' to 'int*' [-fpermissive] - C++
Возникли ошибки при компиляции: invalid conversion from 'int' to 'int*' wrong type argument to unary minus Код, где и вылезли...


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

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

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