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

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

Восстановить пароль Регистрация
 
takeiteasy
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 10
15.10.2011, 19:52     По заданым значениям х и у найти значение величины log x y (log с основанием х) #1
Подскажите,где ошибка в 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,тоже непонятное выдает.что сделать?

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

Log по основанию 2 C++
C++ по заданым значениям х и у найти значение величины log x y (log с основанием х )
Перегрузка Log(2) C++
Функция log C++
C++ функция log
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 20:24     По заданым значениям х и у найти значение величины log x y (log с основанием х) #2
Цитата Сообщение от takeiteasy Посмотреть сообщение
"it must be integer."
takeiteasy, зачем это ограничение? Логарифмы от дробных чисел тоже бывают

Что касается x=0 и y=0, вы их в своих условиях не учитываете, пишете x<0 вместо x<=0
takeiteasy
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 10
15.10.2011, 20:34  [ТС]     По заданым значениям х и у найти значение величины log x y (log с основанием х) #3
спасибо,действительно глупые ошибки.
но если вводить числа от нуля до 1,то тоже выдает еррор.как этого избежать?
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 20:46     По заданым значениям х и у найти значение величины log x y (log с основанием х) #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 дробные. Может, вы где-то лишние знаки поставили?
takeiteasy
0 / 0 / 0
Регистрация: 15.10.2011
Сообщений: 10
15.10.2011, 21:01  [ТС]     По заданым значениям х и у найти значение величины log x y (log с основанием х) #5
да дробные то можно.
а вот именно от 0 до 1 нельзя.
например 0,5.
сразу же ошибка.
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
15.10.2011, 21:06     По заданым значениям х и у найти значение величины log x y (log с основанием х) #6
takeiteasy, опишите, какая у вас ошибка (ошибка компиляции (если да, то какая), неправильно считает, пишет почему-то текст "Error"....) и что вы вводите. Ваша программа с исправлениями x<0 на x<=0 (аналогично для y) работает и ошибки при вводе x=0.5 не выдает.

P.S. дробные числа в программировании имеют разделителем точку, а не запятую
Yandex
Объявления
15.10.2011, 21:06     По заданым значениям х и у найти значение величины log x y (log с основанием х)
Ответ Создать тему
Опции темы

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