Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/55: Рейтинг темы: голосов - 55, средняя оценка - 4.87
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 191

Даны натуральные числа М и N. Вывести старшую цифру дробной части и младшую цифру целой части числа M/N

06.04.2019, 23:25. Показов 12125. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сделала программу по заданию, но почему-то результат выводит целочисленный, когда ввожу например числа 3 и 2. Результат должен получится 1,5. Он выводит 1. И в итоге неправильно выводит младшую и старшую цифру. Ставила уже тип float и double. Выводит ошибку: error C2296: %: недопустимо, левый операнд имеет тип "float"

Вот код программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{ int m_int, n_float;
   int result;
        float m, n;
cout << "Vvedite 2 naturalnyx chisla: "; 
cin >> m;
cin >> n;
result = m/n;
cout << "Rezult:" << result << endl;
m_int = m/n % 10; // Младшая цифра целой части
n_float = ( 10 * (m - n * (m/n)) ) / n; // Старшая цифра дробной части
cout << "Mladshaya cifra:" << m_int << endl;
cout << "Starshaya cifra:" << n_float  << endl;
system("pause");
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2019, 23:25
Ответы с готовыми решениями:

Вывести старшую цифру дробной части и младшую цифру целой части числа
Искал у вас, не нашел. Я новичок в этом деле, если вам не трудно напишите полностью решение ща контрольная ( 31. Даны натуральные...

Даны натуральные числа М и N. Вывести старшую цифру дробной части и младшую цифру целой части числа M/N
Даны натуральные числа М и N. Вывести старшую цифру дробной части и младшую цифру целой части числа M/N.Pascal

Даны 2 натуральных числа M и N.Вывести старшую цифру дробной части и младшую цифру целой части числа M/N
Помогите пожалуйста написать программки в VBA: 1)Даны натуральные числа М и N. Вывести старшую цифру дробной части и младшую цифру...

10
33 / 22 / 12
Регистрация: 13.09.2017
Сообщений: 74
06.04.2019, 23:38
Тип переменной результата должен быть double:
C++
1
double result; // вместо int result
Касательно левого операнда. Попробуйте использовать явное преобразование типов:

C++
1
2
m_int = (int)(m / n) % 10; // Младшая цифра целой части
n_float = ( 10 * (m - n * int(m/n)) ) / n; // Старшая цифра дробной части
Должно сработать.
0
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 191
06.04.2019, 23:50  [ТС]
double переделала, поставила int, ошибок нет. Но все равно выводится целочисленное значение
0
33 / 22 / 12
Регистрация: 13.09.2017
Сообщений: 74
06.04.2019, 23:56
Тут дело в том, для хранения результат m/n - создается временная переменная типа float, и над ней производится операция взятие остатка от деления, что запрещено. Так как операция преобразования типов имеет больший приоритет, чем операция остатка от деления, то все будет в порядке.
Тип переменной, которой присваивается результат не играет в этом отношении никакой роли, так как результат должен будет неявно преобразован в целое число только после вычисления самого выражения, которое вычислено быть не может, по упомянутым выше причинам.

Как вариант, можно было определить для этого отдельную переменную:

C++
1
2
3
4
int toInt = result;
cout << "Rezult:" << result << endl;
m_int = toInt % 10; // Младшая цифра целой части
n_float = ( 10 * (m - n * toInt ) / n); // Старшая цифра дробной части
Добавлено через 3 минуты
Цитата Сообщение от Polina B Посмотреть сообщение
double переделала, поставила int, ошибок нет. Но все равно выводится целочисленное значение
Целочисленное значение в переменной result ?
0
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 191
06.04.2019, 23:59  [ТС]
Добавила строчку int toInt = result;
Но также выводит целочисленное значение и предупреждение что возможна потеря данных.

Добавлено через 49 секунд
да, целочисленное значение в result. И в случае добавлении строчки тоже

Добавлено через 10 секунд
да, целочисленное значение в result. И в случае добавлении строчки тоже
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.04.2019, 00:06
Polina B,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main()
{ 
    int m, n; 
        
    cout << "m="; cin >> m;
    cout << "n="; cin >> n;
 
    cout << m/n%10 << "\n" << (int)((double)m/n*10)%10 << "\n";
 
system("pause");
return 0;
}
0
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 191
07.04.2019, 00:13  [ТС]
Yetty, спасибо! Можно получается и без вывода результата...
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
07.04.2019, 00:17
Цитата Сообщение от Polina B Посмотреть сообщение
без вывода результата
цифры выводятся (согласно условию). не совсем понял, что Вы хотите сказать ? как работает разобрались ?
0
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 191
07.04.2019, 00:38  [ТС]
Yetty, да разобралась. Там не особо сложно. Вопрос в основном был почему выводится целочисленное значение. А так все нормально. Так что спасибо!

Добавлено через 5 минут
У меня еще такой вопрос, пускай будет в этой теме. Тоже сижу еще с одним заданием. Может кто знает как в C++ проинвертировать младшие 4 бита числа. У меня вводится число, переводится в двоичное.

Вот что пока я начала делать:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <bitset>
using namespace std;
int main()
{ int n;
cout << "Enter a number: "; cin >> n;
bitset<8> bitset = n ;
cout << "Binary : " << bitset.to_string<char, char_traits<char>, allocator<char> >() << endl;
//int x=~n;
//cout << "x : " << x << endl;
system("pause");
return 0;
}
Добавлено через 12 минут
Еще такой вариант, но что то опять не так идет:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <bitset>
using namespace std;
int main()
{ unsigned int n;
cout << "Enter a number: "; cin >> n;
bitset<8> bitset = n ;
cout << "Binary : " << bitset.to_string<char, char_traits<char>, allocator<char> >() << endl;
cout << (n ^ (((1 << 5) - 1)<<3)) << endl;
system("pause");
return 0;
}
0
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
07.04.2019, 11:42
Цитата Сообщение от Polina B Посмотреть сообщение
Может кто знает как в C++ проинвертировать младшие 4 бита числа.
C++
1
число ^ 0xf
0
2 / 2 / 0
Регистрация: 08.02.2015
Сообщений: 191
07.04.2019, 11:48  [ТС]
Я сделала вот так, он инвертирует младшие 4 бита. Только инвертируемое число выводит в десятичном, а как вывести в двоичном?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <bitset>
using namespace std;
int main()
{ unsigned int n;
cout << "Enter a number: "; cin >> n;
bitset<8> bitset = n ;
cout << "Binary : " << bitset.to_string<char, char_traits<char>, allocator<char> >() << endl;
cout << ( n ^ (((1 << 4) - 1)<<0)) << endl;
system("pause");
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.04.2019, 11:48
Помогаю со студенческими работами здесь

Вывести старшую цифру дробной части и младшую цифру целой части числа
Даны натуральные числа M и N. Вывести старшую цифру дробной части и младшую цифру целой части числа M/N.

Вывести старшую цифру дробной части и младшую цифру целой части числа
Даны натуральные числа M и N. Вывести старшую цифру дробной части и младшую цифру целой части числа M/N.

Вывести старшую цифру дробной части и младшую цифру целой части числа
помогите зделать задачку пожаловайста на любом из &quot;С&quot; Даны натуральные числа М и N. Вывести старшую цифру дробной части и младшую...

Вывести старшую цифру дробной части и младшую цифру целой части числа
дыны натуральные числа m и n. вывести старшую цифру дробной части и младшую цифру целой части числа M/N.

Вывести старшую цифру дробной части и младшую цифру целой части числа m/n
Даны натуральные числа m и n вывести старшую цифру дробной части и младшую цифру целой части числа M/N. Хелп


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru