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

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

Войти
Регистрация
Восстановить пароль
 
CheHast
Сообщений: n/a
#1

Программа с функцией pow. - C++

19.10.2009, 21:26. Просмотров 629. Ответов 4
Метки нет (Все метки)

Всем привет.
Суть задачи в том,что из данного файла записать в переменную число,которое находится в файле, и найти максимальную степень двойки,на которую делится это число.
При компиляции выдаётся ошибка: "ambigous call to overloaded function"
Хотелось бы услышать,почему программка ругается и как исправить это.
Так же не отказался бы от советов,как оптимизировать программу.
Заранее спасибо)

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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    ifstream in("diveasybility.in.txt");
    ofstream out("diveasybility.out.txt");
    int a,i;
    double b;
    in >> a;
 
    while ((a <= 1024) && (a >= 1))
    {
        for(i; i < 10; i--)
        {
            b = a % pow(2,i); 
            if (b = 0)
            {
                out << i;
            }
        break;
        }
    }
 
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2009, 21:26     Программа с функцией pow.
Посмотрите здесь:

C++ Послав команду функцией system() программа ждет дополнительных данных
что за ошибка с функцией POW C++
Подсчёт выражения. Разработка программы и неясности с функцией pow C++
C++ проблема с функцией pow()
программа с рекурсивной функцией C++
Программа с функцией, которая выводит таблицу квадратов C++
Программа с виртуальной функцией C++
Программа с рекурсивной функцией C++
Программа с массивом и функцией. Вывести таблицу значений функции C++
C++ Ошибка с библиотечной функцией pow
Проблема с функцией pow() C++
Программа с функцией, вычисляющей площадь поверхности цилиндра C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
19.10.2009, 21:53     Программа с функцией pow. #2
значение переменной 'a' вводится из файла. Затем цикл:
C++
1
while ((a <= 1024) && (a >= 1))
причем в цикле переменная 'a' не изменяется. Цикл у Вас бесконечный
Предлагаю вариант:
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
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std; 
int main( )
{
        ifstream in("diveasybility.in.txt");
        ofstream out("diveasybility.out.txt");
        int a,i, b, temp=0;
        in >> a;
        b=a;
        i=0;
        while(b>0)
        {
            b/=2;
            i++;
        }
        i--;
        for(b=1; b<i; b++)
            if(a%(int)pow(2,b)==0)
                temp=b;
        cout<<"Otvet: "<<b<<endl;
        out << i;
system("pause");
return 0;
}
CheHast
Сообщений: n/a
20.10.2009, 00:41     Программа с функцией pow. #3
Всё равно выдаёт ошибку "error C2668: 'pow' : ambiguous call to overloaded function"
From_Tula
40 / 40 / 2
Регистрация: 22.05.2009
Сообщений: 472
20.10.2009, 00:43     Программа с функцией pow. #4
для pow нужна библиотека math
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
20.10.2009, 06:15     Программа с функцией pow. #5
Строку 21 в моем коде замени на:
C++
1
if(a%(int)pow((double)2,b)==0)
Yandex
Объявления
20.10.2009, 06:15     Программа с функцией pow.
Ответ Создать тему
Опции темы

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