Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
1

Доработать код: возвести числа в степень, после сравнить полученные данные и найти большее

16.07.2015, 20:47. Показов 1241. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
//программа должна считывать данные с клавиатуры и возводить числа в степень,
//после сравнить полученные данные и найти большее
#include <iostream>
#include <cmath>
using namespace std;
 void zxc(float a,float b){
 
float d=pow(a,b);
cout<<endl;
cout<<a<<" w stepeni "<<b<<"="<<d<<endl;
cout<<endl;
 }
 void asd(float z,float c){
 
float f=pow(z,c);
cout<<endl;
cout<<z<<" w stepeni "<<c<<"="<<f<<endl;
cout<<endl;
 }
 int main(){
float g,h;
cout<<"wwedite 1 cislo:\n";
cin>>g;
cout<<"wwedite stepen:\n";
cin>>h;
 zxc(g,h);
float n,m;
cout<<"wwedite 2 cislo:\n";
cin>>n;
cout<<"wwedite stepen:\n";
cin>>m;
 asd(n,m);
//верхняя часть программы работает адекватно,
//а дальше вместо того чтобы выводить большее,программа
//выводит:1<=1 помогите разобраться в чём проблема 
if(zxc>asd){
    cout<<zxc<<">"<<asd;
}
else{
    cout<<zxc<<"<="<<asd;
}
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2015, 20:47
Ответы с готовыми решениями:

Возвести в квадрат большее из чисел, и в четвертую степень – меньшее
1. Даны два действительных числа. Возвести в квадрат большее из чисел, и в четвертую степень –...

Даны 3 неравных числа, найти большее из них, возвести его в квадрат и записать переменной z
Даны 3 неравных числа найти большее из них, возвести его в квадрат и записать переменной z

Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++.
Как возвести дробное число в целую степень? К примеру 2,7 возвести в степень 2 на C++.

Найти минимальную цифру этого числа и возвести введённое число в степень, равную минимальной цифре
var n : word; s : real; {Функция выдает наименьшую цифру числа number} function...

17
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
16.07.2015, 20:57 2
Цитата Сообщение от Tancist Посмотреть сообщение
if(zxc>asd){
Это плохо! Это имя функции но не как не результат ее работы

Что бы не портить ваш "код":

C++
1
if(zxc(g,h)>asd(n,m)){
замените на это
0
67 / 67 / 72
Регистрация: 10.04.2015
Сообщений: 281
16.07.2015, 21:00 3
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
float EnterNumber(int i)
{
    float num,step;
    cout << "Vvedite "<<i<< " chislo:\n";
    cin  >> num; 
    
    cout <<"Vvedite stepen':\n";
    cin  >> step;
    std::cout <<"\n"<<"Chislo "<< num << " v stepeni " << step << " ravno = "<<pow(num,step)<<"\n";
    return pow(num,step);
}
int main()
{
    
    int fres = EnterNumber(1);
    int sres = EnterNumber(2);
 
    if(fres > sres){
        cout<<fres<<">"<<sres;
    }
    else{
        cout<<fres<<"<="<<sres;
    }
    
return 0;
}
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
16.07.2015, 21:04 4
Цитата Сообщение от mr_mczakenberg Посмотреть сообщение
Если что там две одинаковые функции абсолютно...
Я заметил, но

Цитата Сообщение от _Valera_ Посмотреть сообщение
Что бы не портить ваш "код":
0
67 / 67 / 72
Регистрация: 10.04.2015
Сообщений: 281
16.07.2015, 21:09 5
Цитата Сообщение от _Valera_ Посмотреть сообщение
Я заметил, но
Лучше испортить код и не писать две одинаковые функции в будущем

Добавлено через 3 минуты
Цитата Сообщение от mr_mczakenberg Посмотреть сообщение
int fres = EnterNumber(1);
* * int sres = EnterNumber(2);
Тип конечно же
C++
1
double
, мой косяк. Проверял только на целых числах, не доглядел.
0
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
16.07.2015, 21:17 6
Цитата Сообщение от mr_mczakenberg Посмотреть сообщение
Лучше испортить код и не писать две одинаковые функции в будущем
конечно) Но судя по его опыту - так можно и испугать.
0
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
16.07.2015, 23:08  [ТС] 7
C++
1
2
3
4
5
6
7
8
9
//исправил выскакивает ошибка
if(zxc(g,h)>asd(n,m)){
    cout<<zxc<<">"<<asd;
}
else{
    cout<<zxc<<"<="<<asd;
}
return 0;
}
0
67 / 67 / 72
Регистрация: 10.04.2015
Сообщений: 281
17.07.2015, 09:44 8
Цитата Сообщение от Tancist Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
//исправил выскакивает ошибка
if(zxc(g,h)>asd(n,m)){
    cout<<zxc<<">"<<asd;
}
else{
    cout<<zxc<<"<="<<asd;
}
return 0;
}
Вы не исправили...

zxc и asd(ДВЕ ОДИНАКОВЫЕ ФУНКЦИИ БЛИН СНОВА @#%$#&*%) это функции,тем более функции с параметрами.

Если уж выводить по вашему( я сдаюсь , пусть по вашему).

C++
1
2
3
4
5
6
7
 
if(zxc(g,h)>asd(n,m)){
cout <<zxc(g,h)<<" > "<<asd(n,m);
}
else {
std::cout << zxc(n,m)<<" <= "<< asd(n,m);
}

Не по теме:

Если вам нужно это куда-то сдать - это нести нельзя.

0
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
17.07.2015, 11:48  [ТС] 9
C++
1
2
//да вы верно заметили я новичок ещё только начал изучать функции, прошу объяснить у вас в коде в 6 строке
//прописано std::cout что это значит и ещё я вставил ваш код в прогу выскочила ошибка и связана она с типом void
0
67 / 67 / 72
Регистрация: 10.04.2015
Сообщений: 281
17.07.2015, 15:56 10
Namepsace std - пространство имён, к которому принадлежит cout.

Если вы указали сверху using namespace std; то писать "std::" возле каждого cout, cin, string не требуется.,

иначе если вы не добавили данную строку - то вызов cout и сin происходит так:
std::cout<<"";
std::cin>>a;
0
55 / 48 / 13
Регистрация: 31.10.2013
Сообщений: 166
17.07.2015, 16:15 11
Сразу возникает вопрос а зачем в квадрат числа возводить, когда можно просто проверить какое из них больше и возвести в квадрат при выводе?!
0
67 / 67 / 72
Регистрация: 10.04.2015
Сообщений: 281
17.07.2015, 17:09 12
Цитата Сообщение от ShadowFirst Посмотреть сообщение
Сразу возникает вопрос а зачем в квадрат числа возводить, когда можно просто проверить какое из них больше и возвести в квадрат при выводе?!
А вдруг "-5" и "3"?

PS: Ясно что можно модуль взять... но если задание звучит так - то будет так.
0
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
17.07.2015, 18:48  [ТС] 13
C++
1
2
3
4
5
6
7
8
9
10
11
//спасибо за пояснение буду знать
 
//вот полностью отредактированный код нижней части, но всё равно не работает,
//выводит ошибку с оператором if
 
if(zxc(g,h)>asd(n,m)){
cout <<zxc(g,h)<<" > "<<asd(n,m);
}
else {
cout << zxc(n,m)<<" <= "<< asd(n,m);
}
0
67 / 67 / 72
Регистрация: 10.04.2015
Сообщений: 281
17.07.2015, 18:56 14
Цитата Сообщение от Tancist Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
//спасибо за пояснение буду знать
 
//вот полностью отредактированный код нижней части, но всё равно не работает,
//выводит ошибку с оператором if
 
if(zxc(g,h)>asd(n,m)){
cout <<zxc(g,h)<<" > "<<asd(n,m);
}
else {
cout << zxc(n,m)<<" <= "<< asd(n,m);
}
В самом if ошибок нет, есть ошибки в функции.
//
Только сейчас заметил... Ваши функции ничего не возвращают.
Шаблон функции выглядит так:

<тип возвращаемых данных><имя функции>(параметры){}

Так вот... У вас считается Число А в степени Б и записывается в Д. На этом конец, т.к. ваша функция имеет тип возвращаемого значения void (т.е. ничего).

Изменить тип возвращаемых данных на
C++
1
float
и в конце каждой из zxc() и asd() дописать
C++
1
return d;
и
C++
1
 return f;
соответственно.
1
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
17.07.2015, 23:48  [ТС] 15
Я в начале не написал, по задумке функции не должны возвращать значений,
спасибо за ваш ответ, но я нашёл вариант решения этой проблемы.Я воспользовался ссылками, с их помощью вывел
результат за пределы функции.Вот мой код:
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
#include <iostream>
#include <cmath>
using namespace std;
 void zxc(float a,float b,float &d){
 
 d=pow(a,b);
cout<<endl;
cout<<a<<" w stepeni "<<b<<"="<<d<<endl;
cout<<endl;
 }
 void asd(float z,float c,float &f){
 
 f=pow(z,c);
cout<<endl;
cout<<z<<" w stepeni "<<c<<"="<<f<<endl;
cout<<endl;
 }
 int main(){
float g,h,l=0;
cout<<"wwedite 1 cislo:\n";
cin>>g;
cout<<"wwedite stepen:\n";
cin>>h;
 zxc(g,h,l);
float n,m,p=0;
cout<<"wwedite 2 cislo:\n";
cin>>n;
cout<<"wwedite stepen:\n";
cin>>m;
 asd(n,m,p);
if(l>p){
cout <<l<<" > "<<p;
}
else {
cout <<l<<" <= "<<p;
}
return 0;
}
Ваш код я использовал в альтернативном варианте решения:
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
#include <iostream>
#include <cmath>
using namespace std;
 float zxc(float a,float b){
 
float d=pow(a,b);
cout<<endl;
cout<<a<<" w stepeni "<<b<<"="<<d<<endl;
cout<<endl;
return d;
 }
 float asd(float z,float c){
 
float f=pow(z,c);
cout<<endl;
cout<<z<<" w stepeni "<<c<<"="<<f<<endl;
cout<<endl;
return f;
 }
 int main(){
float g,h;
cout<<"wwedite 1 cislo:\n";
cin>>g;
cout<<"wwedite stepen:\n";
cin>>h;
 zxc(g,h);
float n,m;
cout<<"wwedite 2 cislo:\n";
cin>>n;
cout<<"wwedite stepen:\n";
cin>>m;
 asd(n,m);
if(zxc(g,h)>asd(n,m)){
cout <<zxc(g,h)<<" > "<<asd(n,m);
}
else {
cout <<zxc(g,h)<<" <= "<<asd(n,m);
}
return 0;
}
Но у меня этот код выводит предложения больше раз чем нужно, с чем связано не знаю.

Добавлено через 3 часа 16 минут
Отпишитесь, мне интересно ваше мнение
0
33 / 40 / 2
Регистрация: 04.12.2014
Сообщений: 87
18.07.2015, 00:02 16
какая-то мешанина, сдавать такое нельзя.
слишком много ненужных повторений кода вкупе с объявлением ненужных переменных в первом варианте.
во втором вообще зачем-то 2 раза используется cout для вывода одной и той же инфы - один раз в функции, а потом при ее вызове.
0
71 / 53 / 10
Регистрация: 31.07.2009
Сообщений: 149
18.07.2015, 00:14 17
Цитата Сообщение от Tancist Посмотреть сообщение
Но у меня этот код выводит предложения больше раз чем нужно, с чем связано не знаю.
Из-за того что у тебя информация выводится еще и в функции.
Вообще, запомни на будущее:
Называй функции так, чтобы понятно было, что они делают. К примеру, функцию, которая выводит площадь фигуры, называй getArea и т.д.
А второе, если функция у тебя возвращает какое то значение, то пусть она вычислит это значение и вернет только ее. Не надо в функции писать вывод чего то в консоль и возврат значения (только если это конечно не отладочная информация). А вывод в консоль уже пиши вне этой функции.
0
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
18.07.2015, 19:32  [ТС] 18
Всем спасибо прога работает
0
18.07.2015, 19:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2015, 19:32
Помогаю со студенческими работами здесь

Как в sql (informix) сравнить полученные с двух запросов данные?
есть два запроса: IfxCommand cmd = new IfxCommand(&quot;select date_doc,division from os_act_enter...

Пользователь вводит натуральное число. Найти минимальную цифру этого числа и возвести введённое число в степень
Пользователь вводит натуральное число. Найти минимальную цифру этого числа и возвести введённое...

Даны три целых числа. Возвести в квадрат отрицательные числа и в третью степень — положительные
Даны три целых числа. Возвести в квадрат отрицательные числа и в третью степень — положительные...

Даны три целых числа; возвести в квадрат отрицательные числа и в третью степень положительные
даны три целых числа возвести в квадрат отрицательные числа и в третью степень положительное лазарус

Сравнить 3 числа и вывести большее
Вот есть 3 (rezultat,rezultatd,polnsumm) переменные, в которые попадают чиста, как можно сравнить...

Возвести числа в некоторую степень
Даны три действительные числа. Возвести в квадрат те из них, значения которых неотрицательны, и в...


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru