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

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

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

По заданым значениям х и у найти значение величины log x y (log с основанием х) - C++

15.10.2011, 19:52. Просмотров 916. Ответов 5
Метки нет (Все метки)

Подскажите,где ошибка в if-else.Потому-что,когда вводить вместо х или у 0,почему-то еррор не выдает,а что-то непонятное каждый раз.Спасибо.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cmath>
#define _USE_MATH_DEFINES
using namespace std;
 
int main ()
{
    double x=0,y=0,a=0;
    cout<<"This programm calculates the logarithm of y to base x."<<endl;
    cout<<"Please input x and press Enter.It must be integer."<<endl;
    cin>>x;
    cout<<"Please input y and press Enter.It must be integer."<<endl;
    cin>>y;
    a=log(y)/log(x);
        if(x<0) cout<<"Error."<<endl;
    else  if(x==1) cout<<"Error."<<endl;
          else if(y<0) cout<<"Error."<<endl; 
          else cout<<"Result:"<<a<<endl;
    system ("pause");
        return 0;
}


п.с.или если снять "it must be integer." и будет введено вместо х - 0,5,тоже непонятное выдает.что сделать?

 Комментарий модератора 
Используйте теги форматирования кода!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2011, 19:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос По заданым значениям х и у найти значение величины log x y (log с основанием х) (C++):

по заданым значениям х и у найти значение величины log x y (log с основанием х ) - C++
я в принципе понимаю как написать эту программу,но,хоть убейте,в хелпе visual studio 2008 не могу найти ,как обозначать логарифм.нашла...

Найти количество различных чисел в последовательности. Число действий должно быть порядка n*log(n) - C++
Необходима помощь в сортировке. Последовательность хранится в файле. Необходимо найти количество различных чисел в последовательности....

функция log - C++
Ув.Форумчане, помогите мне необходимо написать эту формула в 3 функция получается. 1) стандартная функция ну это понятно log 2) с...

Log по основанию 2 - C++
Люди, помогите!!! Нужно написать функцию (Log по основанию 2). Я делал через классы. Так что, все что можно было перегрузить...

Перегрузка Log(2) - C++
u1 = sin(3.14*2/12)/(log(2)); Пишет, что перегруженная функция. Что сделать?

Ошибка с Log(10) - C++
Ругается &quot;error C2668: log: неоднозначный вызов перегруженной функции&quot; в этой строчке if ( log(x*x+y*y)/log(10) &gt;Z) {...

5
aeshes
441 / 204 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 20:24 #2
Цитата Сообщение от takeiteasy Посмотреть сообщение
"it must be integer."
takeiteasy, зачем это ограничение? Логарифмы от дробных чисел тоже бывают

Что касается x=0 и y=0, вы их в своих условиях не учитываете, пишете x<0 вместо x<=0
1
takeiteasy
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 10
15.10.2011, 20:34  [ТС] #3
спасибо,действительно глупые ошибки.
но если вводить числа от нуля до 1,то тоже выдает еррор.как этого избежать?
0
aeshes
441 / 204 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 20:46 #4
кусок кода из main
C++
1
2
3
4
5
6
7
8
9
10
 double x=0,y=0,a=0;
 cout<<"This programm calculates the logarithm of y to base x."<<endl;
 cout<<"Please input x and press Enter.It must be integer."<<endl;
 cin>>x;
 cout<<"Please input y and press Enter.It must be integer."<<endl;
 cin>>y;
 if(x<=0) cout<<"Error."<<endl;
 else if(x==1) cout<<"Error."<<endl;
 else if(y<=0) cout<<"Error."<<endl; 
 else cout<<"Result:"<<log(y)/log(x)<<endl;
и там можно вводить х и y дробные. Может, вы где-то лишние знаки поставили?
0
takeiteasy
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 10
15.10.2011, 21:01  [ТС] #5
да дробные то можно.
а вот именно от 0 до 1 нельзя.
например 0,5.
сразу же ошибка.
0
aeshes
441 / 204 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:06 #6
takeiteasy, опишите, какая у вас ошибка (ошибка компиляции (если да, то какая), неправильно считает, пишет почему-то текст "Error"....) и что вы вводите. Ваша программа с исправлениями x<0 на x<=0 (аналогично для y) работает и ошибки при вводе x=0.5 не выдает.

P.S. дробные числа в программировании имеют разделителем точку, а не запятую
0
15.10.2011, 21:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2011, 21:06
Привет! Вот еще темы с ответами:

Функция log - C++
Здравствуйте! Такой вопрос. Я использовала функцию log для нахождения логарифма по основанию 2 от целого аргумента. В C++ Билдере это...

Обработка log-файла - C++
Добрый вечер! Ребята, столкнулся с проблемой, и никак не могу найти ей элегантное решение. В голове крутится всякое, но четко понять не...

Формула ряда log(x + 1) / (x - 1) - C++
Нужна формула ряда данной функции log((x + 1) / (x - 1)), не знаю, как записать.

Log Domain error - C++
Поясните начинающему программисту эту ошибку??? вот код программы, и почему эта ошибка при отрицательном значении??? ...


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

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

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