Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/34: Рейтинг темы: голосов - 34, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 20

if else и остаток от деления

08.07.2013, 14:55. Показов 6718. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <stdio.h>
#include <vcl.h>
#include <math.h>
#pragma hdrstop
int main()
{
    double i,a,k;
    printf("Enter i: ");
    scanf("%lf", &i);
    printf("Enter a: ");
    scanf("%lf", &a);
    k = i%2;
    if (k==0)&&(a>0) {
        double f = i*sqrt(a);
        printf("f = %3.51f",f);
    }
    else if ((k==5)&&(a<0)) {
        double f = (i/2)*sqrt(abs(a));
        printf("f = %3.51f",f);
            }
    else   {
        double f = sqrt(i-a);
 
    system("PAUSE");
    return 0;
}
всё тот же самый борланд. ошибка на процентах) как найти остаток от деления на 2?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.07.2013, 14:55
Ответы с готовыми решениями:

Найти частное от деления нацело N на K, а также остаток от этого деления
While3. Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а...

Найти частное и остаток от деления нацело без операции деления
1)Дано целое число A (&gt; 0) и целое число B (&gt; 0). Найти долю Q и остаток R от деления нацело числа A на B (без использования операции...

Найти частное от деления нацело N на K, а также остаток от этого деления
Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также...

10
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
08.07.2013, 15:04
Цитата Сообщение от sosisochka Посмотреть сообщение
как найти остаток от деления на 2?
Так не устроит?
C++
1
2
    int pp = i/2;
    k = i - pp;
1
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 20
08.07.2013, 15:23  [ТС]
не понял сути написанного тобой. например i=6 -> pp=3 -> k=3;
i=3 -> pp=1 -> k=2, так? и как тут проверять? мне в иф что то надо написать чему равно должно быть k?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
08.07.2013, 15:35
просто у тебя k и i - double, поэтому просто извлечь "по модулю два" из i (i % 2) не выйдет (как я понял, на эту строчку ругается). Поэтому остаток от деления на 2 можно получить как разность частного (double) и его целой части: k = (i/2) - (int)(i/2);
1
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 20
08.07.2013, 15:56  [ТС]
извини что уж так тревожу тебя но всё таки добавил пару кусков кода(для проверки) получилось так
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
#include <math.h>
#pragma hdrstop
int main()
{
    double i,a;
    double k;
    printf("Enter i: ");
    scanf("%d", &i);
    printf("Enter a: ");
    scanf("%d", &a);
    int p = i/2;
    k=i/2-p;
    printf("p=%d",p);
    
    printf("k=%
    f",k);
    if ((k==0)&&(a>0)) {
        double f = 3;//i*sqrt(a);
        printf("f = %3.51f",f);
    }
    else if ((k==0.5)&&(a<0)) {
        double f = 4;//(i/2)*sqrt(abs(a));
        printf("f = %3.51f",f);
            }
    else   {
        double f = 5;//sqrt(abs(i-a));
        printf("f = %3.51f",f);
    }
    system("PAUSE");
    return 0;
в итоге p-подлежит изменению, но k - не поддаётся. как было 0 так и осталось любое значение выдаёт мне грёбаную 5-ку, тоесть переходит на 3 условие

Добавлено через 3 минуты
int i,a;
исправил строку, пусть будет так. с double разберусь позже.
0
0 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 19
08.07.2013, 16:14
Цитата Сообщение от sosisochka Посмотреть сообщение
всё тот же самый борланд. ошибка на процентах) как найти остаток от деления на 2?
Борланд ругается на применение целочисленного деления к double.
Всё решается просто:
вместо
C++
1
2
int p = i/2;
    k=i/2-p;
Пишем:
C++
1
k =  (double)(((int)i)%2);
% - остаток от деления, Борландом применяется лишь к целочисленным типам.
Поэтому преобразуем переменную i в целый тип, а результат обратно преобразуем в целочисленный тип (будь то int, long int или long long).
// -----------------------------------------------------------------------------------------------------------------------
На участке:
C++
1
 if ((k==0)&&(a>0)) {
Вы опять же сравниваете double с целочисленными типами. Правельно писать:
C++
1
 if ((k==0.0)&&(a>0.0)) {
// -----------------------------------------------------------------------------------------------------------------------
А вот такое условие:
C++
1
    else if ((k==5)&&(a<0)) {
вообще бессмысленно, так как k никогда не выйдет (по заданному делению на 2) равным 5. Переменная k будет либо 0.0 либо 1.0, Вы ведь находили остаток от деления на 2.
0
0 / 0 / 0
Регистрация: 07.01.2013
Сообщений: 20
08.07.2013, 16:35  [ТС]
да это я психунул и полетело. изначально писалось 1, но потом что-то пошло не так и полетело куда не нужно. спасибо очень помогли
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
08.07.2013, 17:17
Цитата Сообщение от Avyyakta Посмотреть сообщение
% - остаток от деления, Борландом применяется лишь к целочисленным типам.
Про существование fmod уже никто не знает?
1
0 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 19
08.07.2013, 17:41
Цитата Сообщение от UI Посмотреть сообщение
Про существование fmod уже никто не знает?
Знают, но целочисленое деление быстрее и проще, потому и стараюсь не употреблять fmod.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33400 / 21510 / 8236
Регистрация: 22.10.2011
Сообщений: 36,907
Записей в блоге: 12
08.07.2013, 18:31
Оно и видно, как у тебя в коде быстрее и проще получается...
0
0 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 19
08.07.2013, 18:45
Цитата Сообщение от UI Посмотреть сообщение
Оно и видно, как у тебя в коде быстрее и проще получается...
Если о самой строке сорсера, то - да выглядит непривычно. Но это по началу...
Простые преобразовения работают (в основном) быстрее чем вызовы аналогичных мат.функций.
Вид же,... да наверное неприглядный, но некоторые компиляторы пользуются такими же скрывая их за #define ...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.07.2013, 18:45
Помогаю со студенческими работами здесь

Найти частное от деления нацело N на K, а также остаток от деления
Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также ...

Написать программу, которая используя функции mod (остаток от деления) и div (целая часть от деления)
Написать программу, которая используя функции mod (остаток от деления) и div (целая часть от деления) находит сумму чисел любого...

Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления
Реализовать данные задания с помощью циклов с предусловием или циклов с постусловием. Даны целые положительные числа N и K. Используя...

Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления
Помогите с решением Даны целые положительные числа N и K. Используя только операции сложения и вычитания, найти частное от деления нацело...

Используя только операции сложения и вычитания, найти частное от деления нацело N на K, а также остаток от этого деления
Нужно решение задачи на языке С. Заранее благодарю))) Задача: Даны целые положительные числа N и K. Используя только операции сложения и...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru