forum.rastrnet.ru  

Вернуться   forum.rastrnet.ru > Компьютеры и всё, что с ними связано > Программируем

 Сообщения за день       Добавить альбом       Поиск      Правила форума  


Ответ
 
Опции темы Опции просмотра
Старый 04.01.2010, 21:36   #1
Белый
не чернеет...
 
Аватар для Белый
 
Регистрация: 31.07.2007
Сообщений: 218
Help C++: помощь начинающим

помогите, пожалуйста!

есть задача:

Дано целое число n. Получить наименьшее число вида 2^r , превосходящее n.

есть код:

#include <iostream>
#include <math.h>
using namespace std;

int f1 (int r, int n)
{
cout << "BBEDuTE n\n";
cin >> n;
r = 1;
if (float pow(2, r) > n)
cout << "2^r > n\n";
else r++;
}


int main ()
{
cout << f1;
return 0;
}

вопрос: почему не работает, где ошибка??
__________________
Вы есть то, что вы думаете, говорите и делаете. Вот это вы и есть.

Белый вне форума   Ответить с цитированием
Старый 04.01.2010, 22:22   #2
Techno
Супер Techno
 
Аватар для Techno
 
Регистрация: 16.02.2007
Сообщений: 1,965
По умолчанию

попробуй так

#include <iostream>
#include <math.h>
#include <conio.h>
void main()
{
int m=0,z=0;
std::cout << "BBEDuTE m\n";
std::cin >> m;
while (pow(2,z)<=m){ z++; }
std::cout << "itog=2^"<<z;
getch();
}

Последний раз редактировалось Techno; 05.01.2010 в 01:58.
Techno вне форума   Ответить с цитированием
Старый 04.01.2010, 22:43   #3
санёк
Александр Сергеевич
 
Регистрация: 17.09.2006
Сообщений: 62
По умолчанию

возможно нужно заменить
Цитата:
if (float pow(2, r) > n)
на
Цитата:
if (powf(2, r) > n)
P.S. после изменения компилятор перестал выдавать ошибки,но программа не запустилось т.к. C++ не установлен(delphi только)
__________________
санёк вне форума   Ответить с цитированием
Старый 04.01.2010, 23:57   #4
Forbrak
Рид онли
 
Аватар для Forbrak
 
Регистрация: 05.07.2006
Сообщений: 1,307
По умолчанию

Полезная ссылочка для начинающих:
http://zed.karelia.ru/go.to/for.stud...ng.rules/rules
Пыс: смотри пост номер два, что касается твоей проги, надо не исправлять ошибку, а все переписывать.
__________________

Последний раз редактировалось Forbrak; 05.01.2010 в 00:03.
Forbrak вне форума   Ответить с цитированием
Старый 05.01.2010, 01:59   #5
Белый
не чернеет...
 
Аватар для Белый
 
Регистрация: 31.07.2007
Сообщений: 218
По умолчанию

Цитата:
Сообщение от Victor_y Посмотреть сообщение
попробуй так

#include <iostream>
#include <math.h>
#include <conio.h>
void main()
{
int m=0,z=0;
std::cout << "BBEDuTE m\n";
std::cin >> m;
while (pow(2,z)<=m){ z++; }
std::cout << "itog=2^"<<z;
getch();
}
не работает..
1>dusers\белый\documents\visual studio 2008\projects\example1\example1\laba 4(ver1).cpp(9) : error C2668: pow: неоднозначный вызов перегруженной функции
1> eprogram files\visual studio\vc\include\math.h(575): может быть 'long double pow(long double,int)'
1> eprogram files\visual studio\vc\include\math.h(527): или 'float pow(float,int)'
1> eprogram files\visual studio\vc\include\math.h(489): или 'double pow(double,int)'
1> при попытке сопоставить список аргументов '(int, int)'
1>dusers\белый\documents\visual studio 2008\projects\example1\example1\laba 4(ver1).cpp(9) : fatal error C1903: не удается восстановить после предыдущих ошибок; остановка компиляции
__________________
Вы есть то, что вы думаете, говорите и делаете. Вот это вы и есть.

Белый вне форума   Ответить с цитированием
Старый 05.01.2010, 02:00   #6
Белый
не чернеет...
 
Аватар для Белый
 
Регистрация: 31.07.2007
Сообщений: 218
По умолчанию

Цитата:
Сообщение от санёк Посмотреть сообщение
возможно нужно заменить

на


P.S. после изменения компилятор перестал выдавать ошибки,но программа не запустилось т.к. C++ не установлен(delphi только)
тоже не рабит..(
1>dusers\белый\documents\visual studio 2008\projects\example1\example1\laba 4.cpp(10) : warning C4244: аргумент: преобразование 'int' в 'float', возможна потеря данных
1>dusers\белый\documents\visual studio 2008\projects\example1\example1\laba 4.cpp(13) : error C4716: f1: должна возвращать значение
__________________
Вы есть то, что вы думаете, говорите и делаете. Вот это вы и есть.

Белый вне форума   Ответить с цитированием
Старый 05.01.2010, 02:46   #7
Techno
Супер Techno
 
Аватар для Techno
 
Регистрация: 16.02.2007
Сообщений: 1,965
По умолчанию

Цитата:
Сообщение от Белый Посмотреть сообщение
тоже не рабит..(
мм, понятно, у тебя VS 2008 там у нее особенности есть некоторые, лучше установи С++ Builder или VS 2003 net, там меньше заморочек.

А для VS 2008 нужно действовать так:
1) Нажми создать новый проект.
2) Выбери обязательно создать консольное приложение, все галочки пусть по умолчанию стоят. (Галочку на пустом проекте НЕ ставь)
3) После создания проекта найди главный файл(это тот который имеет тоже имя что и сам проект, и он с расширением cpp), и замени его код посностью на этот:

#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <conio.h>
int _tmain(int argc, _TCHAR* argv[])
{
int m=0,z=0;
float rt=2;
std::cout << "BBEDuTE m\n";
std::cin >> m;
while (pow(rt,z)<=m){ z++; }
std::cout << "itog=2^"<<z;
getch();
return 0;
}
//------------
4) Сохрани проект и компилируй.

Последний раз редактировалось Techno; 05.01.2010 в 03:08.
Techno вне форума   Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
начинающим VAD Клуб радиотехников 2 02.03.2016 20:09
ПК-Помощь. SuperMod Работа, услуги 0 10.01.2012 22:14
Помогите начинающим кошкаЛюбителям :) Adamant Флора и фауна 9 14.01.2010 23:43
Советы начинающим бодибилдерам CaypoH Спорт 159 01.12.2007 18:38
Советы начинающим вегетарианцам Желко Сам себе повар 19 01.06.2005 12:42


Текущее время: 03:41. Часовой пояс GMT +7.


Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Форум открыт в июле 2004 г.
Кошки и котята Красноярска и Сибири Живой Мир Сибири