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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
#1

Функция, которая получает два параметра и возвращает результат деления первого параметра на второй - C++

29.03.2014, 15:43. Просмотров 1420. Ответов 23
Метки нет (Все метки)

Тут такая задача: написать функцию, которая получает два параметра тип unsigned short int и возвращает результат деления первого параметра на второй. Функция не должна выполнять операцию деления, если второе число равно 0, но в этом случае она должна возвратить значение - 1.

Я попробовал реализовать так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 #include <iostream>
short int Divider( unsigned short int ValOne,
                  unsigned short int ValTwo);
 
 
 
short int Divivder( unsigned short int ValOne,
                    unsigned short int ValTwo);
{
if(ValTwo == 0 )
return -1;
else 
return (valOne / ValTwo);
}
Но сначала пробовал через int main() - то есть вызвать функцию из функции и передать аргументы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
short int Divider( unsigned short int ValOne,
                  unsigned short int ValTwo);
 
int main();
 
int unsigned short x;
int unsigned short y;
 
short int Divider( unsigned short int x, unsigned short int y);
 
 
short int Divivder( unsigned short int x,unsigned short int y)
{
if(y== 0 )
return -1;
else 
return ( x / y);
}
Не получается откомпилировать.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2014, 15:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция, которая получает два параметра и возвращает результат деления первого параметра на второй (C++):

Функция возвращает остаток от деления первого параметра на второй. Указать ошибку - C++
Мне нужно было разработать функцию типа int, которая возвращает остаток от деления первого параметра на второй. #include &lt;iostream&gt; ...

Разработать функцию, которая возвращает остаток от деления первого параметра на второй - C++
Нужно разработать функцию типа int, которая возвращает остаток от деления первого параметра на второй. Заранее большое спасибо за...

Функцию, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления str2 в str1 - C++
Напишите функцию rightposition, которая получает два параметра str1 и str2 типа string и возвращает позицию начала последнего появления...

Функция, возвращающая остаток отделения первого параметра на второй - C++
Нужно разработать функцию типа int, которая возвращает остаток отделения первого параметра на второй.

Функция, которая возвращает среднее арифметическое элементов параметра-массива - C++
разработайте заданную функцию( 1) и продемонстрируйте работу этой функции, сделав в главной программе несколько вызовов функции с разными...

Функция, которая получает в качестве параметров два целых числа и возвращает сумму - C++
Написать функцию, которая получает в качестве параметров два целых числа и возвращает сумму чисел из диапазона между ними Помогите:-| ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13219 / 7491 / 844
Регистрация: 27.09.2012
Сообщений: 18,410
Записей в блоге: 3
Завершенные тесты: 1
29.03.2014, 16:01 #2
Имена сравните
C++
1
2
3
4
5
6
short int Divider( unsigned short int ValOne,
                  unsigned short int ValTwo);
short int Divivder( unsigned short int x,unsigned short int y)
{
//...
}
где main? Че за глобальные переменные?
0
just_freelance
61 / 37 / 9
Регистрация: 15.03.2014
Сообщений: 315
29.03.2014, 16:21 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
short int Divivder (unsigned short int x, unsigned short int y)
{
    if (y == 0)
        return -1;
    else
        return x / y;
}
 
int main()
{
    unsigned short int x, y;
    cin >> x >> y;
    cout << Divivder(x, y);
    return 0;
}
1
zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
29.03.2014, 20:30  [ТС] #4
Так же нужно, что бы выводи результат деления или ошибку, если будет возвращено значение - 1.

Я пробовал такую реализацию :


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 <iostream>
 
short int Divivder (unsigned short int x, unsigned short int y);
 
using namespace std;
using std::cout;
using std::endl;
 
int main()
{
    short int result;
    
    unsigned short int x, y;
    cout<<"vvedite znajenije x: ";
    cin >> x;
    cout<<"vvedite znajenije y: ";
    cin >> y;
    cin >> x >> y;
   result = Divivder( x, y );
    cout <<  " summa: " << result<<endl;
        char response;
        std::cin;
}
    
short int Divivder (unsigned short int x, unsigned short int y)
{
    if (y == 0)
        return -1;
    else
        return (x / y);
}
Программа запрашивает два числа и возвращает либо результат либо сообщение об ошибке, но в цикле if:

C++
1
2
3
4
5
if ( y ==0 )
cout << " Error! Vvedite znajenije y";
return -1;
else
return ( x / y);
реализовать не удается.

Добавлено через 2 часа 12 минут
Я подкорректировал код:

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
#include <iostream>
 
short int Divivder (unsigned short int valone, 
                    unsigned short int valtwo);
 
using namespace std;
 
int main()
{
    short int result;
    
    unsigned short int one, two;
    cout<<"vvedite znajenije x: ";
    cin >> one;
    cout<<"vvedite znajenije y: ";
    cin >> two;
    cin >> one >> two;
    result = Divivder( one, two );
    if ( result >-1);
       cout <<  " summa: " << result;
    else 
        cout << "Error!Vvedite y ";
    return 0;
}
    
short int Divivder (unsigned short int valone, 
    unsigned short int valtwo)
{
    if (valtwo == 0)
        return -1;
    else
        return (valone / valtwo);
}
Пишет ошибка в блоке if...else;
0
zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 11:48  [ТС] #5
Он в этой конструкции выдает ошибку

Код
if ( result >-1);
	   cout <<  " summa: " << result;
	else 
        cout << "Error!Vvedite y ";
	return 0;
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.03.2014, 11:52 #6
zero-11, после ифа точку с запятой уберите:
C++
1
if ( result >-1)
0
zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 13:34  [ТС] #7
Позволяет ввести два значения, но не выводит результат - хотя после ввода значений управления передается вызываемой функции - может я здесь неверно объявил result = Divivder( one, two ); - но тип short int result - определен - :

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
#include <iostream>
 
short int Divivder (unsigned short int valone, 
                    unsigned short int valtwo);
 
int main();
using namespace std;
 
short int Divivder(unsigned short int valone,
                  unsigned short int valtwo)
{
    short int result;
    
    unsigned short int one, two;
    cout<<"vvedite znajenije one: ";
    cin >> one;
    cout<<"vvedite znajenije two: ";
    cin >> two;
    cin >> one >> two;
    result = Divivder( one, two );
    return 0;
}
   
short int Divider(unsigned short int valone, 
                  unsigned short int valtwo)
{
 short int result;
 
 
    if ( valone == 0)
    cout << "Error! Vvedite y: ";
    else  ( valone > 0)
    result = ( valone / valtwo);
    cout << "resultat:" << result;
    return 0;
}
может есть каки- то идеи-?

точку с запятой я уже убрал и все равно не пашет - может все дело в определении типа - short int Divivder-?
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.03.2014, 13:41 #8
Цитата Сообщение от zero-11 Посмотреть сообщение
все равно не пашет
Что на входе, что на выходе? Чем больше подробностей - быстрее и точнее будет ответ.
0
Croessmah
Эксперт CЭксперт С++
13219 / 7491 / 844
Регистрация: 27.09.2012
Сообщений: 18,410
Записей в блоге: 3
Завершенные тесты: 1
31.03.2014, 13:44 #9
C++
1
int main();//<-- прототип main?
где функция main?
0
zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 15:49  [ТС] #10
int main(); - функция возвращающая цело-чиcленное значение типа int - объявлена в коде, вы наверное это имели в виду:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main();
int main()
{
    unsigned short int one, two; 
    unsigned short int result;
    cout<<"vvedite znajenije x:" ;
    cin >> one;
    cout<<"vvedite znajenije y: ";
    cin >> two;
    cin >> one >> two;
    result = Divivder( one, two );
    if ( result >-1)
       cout <<  " summa: " << result;
    else 
        cout << "Error!Vvedite y ";
    return 0;
}
Добавлено через 49 минут
Все перепроверил - на выходе лишь пустая консоль - прототип - имена типов параметров и тип и имя прототипа соответствует :

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
#include <iostream>
using namespace std;
 
unsigned short int Divivder (unsigned short int valone,
                             unsigned short int valtwo);
int main();
int main()
{
    unsigned short int one, two; 
    unsigned short int result;
    cout<<"vvedite znajenije x:" ;
    cin >> one;
    cout<<"vvedite znajenije y: ";
    cin >> two;
    cin >> one >> two;
    result = Divivder( one, two );
    if ( result >-1)
       cout <<  " summa: " << result;
    else 
        cout << "Error!Vvedite y ";
    return 0;
}  
 
unsigned short int Divivder (unsigned short int valone,
                             unsigned short int valtwo)
    
{
 
    if ( valone == 0)
    return -1;
    else 
    return ( valone /valtwo );
}
0
IrineK
Заблокирован
31.03.2014, 15:55 #11
Цитата Сообщение от zero-11 Посмотреть сообщение
возвращает результат деления
Кстати, а деление целочисленное или обычное?
0
Croessmah
Эксперт CЭксперт С++
13219 / 7491 / 844
Регистрация: 27.09.2012
Сообщений: 18,410
Записей в блоге: 3
Завершенные тесты: 1
31.03.2014, 16:17 #12
C++
1
2
3
4
5
    cout<<"vvedite znajenije x:" ;
    cin >> one;//<--ввод one
    cout<<"vvedite znajenije y: ";
    cin >> two;//<--ввод two
    cin >> one >> two;//<-- зачем еще раз запрашивать их?
0
zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 16:29  [ТС] #13
пересылаются введенные данные повторно - объект пери-направления потока ввода - убирал его - все равно компилироваться не хочет.
0
Croessmah
Эксперт CЭксперт С++
13219 / 7491 / 844
Регистрация: 27.09.2012
Сообщений: 18,410
Записей в блоге: 3
Завершенные тесты: 1
31.03.2014, 16:35 #14
Цитата Сообщение от zero-11 Посмотреть сообщение
все равно компилироваться не хочет.
Ошибки в студию!
У меня всё компилируется и работает так, как написано(ошибки в логике не учитываю).
C++
1
if ( valone == 0)
то будет ноль, а вот если valtwo будет равен нулю, то будет бо-бо
0
zero-11
0 / 0 / 0
Регистрация: 21.03.2014
Сообщений: 56
31.03.2014, 16:38  [ТС] #15
unsigned short int Divivder - объявляет функцию реализующую целочисленное деление а результат возвращает в виде без-знакового короткого целого - имеет в виду что необходима signed short int Divivder-?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 16:38
Привет! Вот еще темы с ответами:

Написать функцию, которая в зависимости от значения первого параметра возвращает количество отрицательных или положительных чисел призвольного массива - C++
Написать функцию, которая в зависимости от значения первого параметра (символ + или – ) возвращает количество отрицательных или...

Функция которая сравнивает два целых числа и возвращает результат сравнения в виде знака: >, < или = - C++
Используя функцию, которая сравнивает два целых числа и возвращает результат сравнения в виде знака: &gt;, &lt; или =, вычислить количество...

Вызов функции, которая возвращает 2 параметра - C++
Видимо я что-то принципиально не понимаю, что же тут не так #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;iostream&gt; #include...

Напишите перегруженную функцию power (), которая принимает два целочисленных параметра типа int и возвращает целочисленное значение типа int - C++
Операции над целыми числами осуществляются быстрее, чем над числами с плавающей точкой. Напишите перегруженную функцию power (), ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.03.2014, 16:38
Ответ Создать тему
Опции темы

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