Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1 / 1 / 0
Регистрация: 01.11.2015
Сообщений: 82

Умножение переменных

27.03.2025, 09:36. Показов 4457. Ответов 36
Метки нет (Все метки)

Здравствуйте, форумчане!
Три месяца не решала задачи на с++.
Теперь начинай всё сначала.
Не могу решить простую задачу.
Умножение двух переменных.

C++
1
2
3
4
5
6
7
8
int main() {
    double num1;
    double num2;
        std::cin>> num1;
        std::cin>> num2;
    double result = num1 * num2;
    std::cout << result;
    return 0;
Для проверки даны числа.
1. 85,5 * 6 = 513;
2. 12*3 =36;
3.123.56 *521 = 64374.76.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.03.2025, 09:36
Ответы с готовыми решениями:

Класс Квадратная матрица. Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей
Задание: Класс «Квадратная матрица». Методы: умножение на матрицу, умножение на константу, вывод элементов матрицы на дисплей. Нужно...

Задано 4 матрицы. Провести сложение, умножение, умножение на число
Задано 4 матрицы A,B,C,D размером 4х4.Вычеслить такие матрицы: F,G,T. G=3/4 A+B F=B*(2D) T=c/5

умножение переменных
как перемножить переменную g на h по модулю( 2^16+1)?

36
фрилансер
 Аватар для Алексей1153
6494 / 5722 / 1133
Регистрация: 11.10.2019
Сообщений: 15,282
27.03.2025, 11:57
Цитата Сообщение от Kataya Посмотреть сообщение
Это задание проходит на си
C#
так то это не C а C#
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
27.03.2025, 12:39
Цитата Сообщение от Verevkin Посмотреть сообщение
std:rintf("%g", num1);
Те же яйца, вид сбоку

C++
1
2
3
4
5
6
7
#include <iostream>
 
int main() 
{
std::cout << 653750.99 << std::endl;
  std::printf("%g\n", 653750.99);
}
Добавлено через 4 минуты
Цитата Сообщение от Kataya Посмотреть сообщение
мало что понятно.
Можно проще.

Вам нужно будет определить точность вводимой цены.
Цифр после запятой.
Потом перевести это число в целое.

unsigned int_price = price*100;
unsinged total = int_price * count;
При выводе, поставить запятую(точку) по полученной погрешности.

Лайтовая версия форматирования, но строго под вашу задачу.

Добавлено через 24 минуты
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 <iostream>
#include <string>
 
unsigned ten_pow(unsigned e){
   unsigned res = 1;
   while(e--)
      res*=10;
   return res;
}
 
int main(){
   std::string str_price;
   unsigned count;
   std::cin >> str_price >> count;
   std::string::size_type pos_point = str_price.find('.');
   unsigned prec = 0; // если точки нет, точность 0
   if (pos_point != std::string::npos) 
      prec = str_price.substr(pos_point+1).size();
      
   unsigned total = std::stod(str_price) * ten_pow(prec) * count;
   
   if (prec)
      std::cout << total / ten_pow(prec) << '.' << total % ten_pow(prec) << std::endl;
   else
      std::cout << total << std::endl;
}
1
1 / 1 / 0
Регистрация: 01.11.2015
Сообщений: 82
27.03.2025, 12:53  [ТС]
Да спасибо!
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,275
27.03.2025, 15:39
Тут напрашивается использование специального класса.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include<iostream>
using namespace std;
struct Currency
{
    unsigned rub,kop;
    Currency(unsigned r,unsigned k):rub(r),kop(k){}
    Currency():rub(0),kop(0){}
    friend istream& operator>>(istream& is,Currency& cur)
    {
        is>>cur.rub;
        char c=is.get();
        if(c=='\n')
            cur.kop=0;
        else if(c=='.')
        {
            char ckop=is.get();
            if(isdigit(ckop) && ckop!='0')
                cur.kop=(ckop-'0')*10;
            ckop=is.get();
            if(isdigit(ckop))
            {
                cur.kop+=(ckop-'0');
                c=is.get();
            }
        }
        return is;
    }
    friend ostream& operator<<(ostream& os,Currency& c)
    {
        os<<c.rub;
        if(c.kop!=0)
        {
            os<<'.';
            if(c.kop<10)
                os<<'0';
            os<<c.kop;
        }
        return os;
    }
    Currency operator+(Currency& c2)
    {
        long long res=rub*100+kop+c2.rub*100+c2.kop;
        return Currency(res/100,res%100);
    }
    Currency operator*(int n)
    {
        long long res=(rub*100+kop)*n;
        return Currency(res/100,res%100);
    }
};
int main() {
    Currency price;
    cout<<"Price for 1:";
    cin>>price;
    unsigned count;
    cout<<"Count:";
    cin >> count;
    cin.get();
    cout <<"Total Price=" << price * count;
    cin.get();
    return 0;
}
1
1 / 1 / 0
Регистрация: 01.11.2015
Сообщений: 82
27.03.2025, 15:41  [ТС]
круто!
0
 Аватар для Pphantom
2460 / 1604 / 741
Регистрация: 17.03.2022
Сообщений: 5,205
27.03.2025, 18:15
Цитата Сообщение от Kataya Посмотреть сообщение
Хотела много не грузить.
Ну вот, теперь видите, к чему это привело.

Правда, условие все равно не идеальное, но если это деньги, то, по идее, выводить надо результат с двумя цифрами после десятичной запятой/точки. Можно как-то так (это по мотивам кода Verevkin):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
int main() 
{
  double num1, num2;
  std::cin >> num1;
  std::cin >> num2;
  num1 *= num2;
  std::cout << std::fixed;
  std::cout.precision(2);
  std::cout << num1 << std::endl;
  return 0;
}
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
27.03.2025, 18:18
Цитата Сообщение от Pphantom Посмотреть сообщение
Правда, условие все равно не идеальное, но если это деньги, то, по идее, выводить надо результат с двумя цифрами после десятичной запятой/точки. Можно как-то так (это по мотивам кода Verevkin)
Чем вас всех стандартный и надёжный printf() не устраивает? Я не понимать...
0
Модератор
Эксперт С++
 Аватар для zss
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,275
27.03.2025, 18:37
Я тоже не люблю iostream из-за сложности форматирования данных.
Но printf не подходит, например, для шаблонов.
C++
1
2
3
4
5
template<class T>
void out(T x)
{
    printf("%d",x); // годится только для T=int
}
0
 Аватар для Pphantom
2460 / 1604 / 741
Регистрация: 17.03.2022
Сообщений: 5,205
27.03.2025, 19:07
Цитата Сообщение от Verevkin Посмотреть сообщение
Чем вас всех стандартный и надёжный printf() не устраивает? Я не понимать...
Я почти было его написал. Но решил, что раз хочется C++, лучше сделать более традиционный для него вариант.
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
27.03.2025, 19:56
Цитата Сообщение от Pphantom Посмотреть сообщение
Но решил, что раз хочется C++, лучше сделать более традиционный для него вариант.
Не "ехать", а "шашечки"? Ясно-понятно.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
27.03.2025, 20:35
Цитата Сообщение от Verevkin Посмотреть сообщение
Чем вас всех стандартный и надёжный printf() не устраивает? Я не понимать...
"Орк не понимать, потому что не хотеть."
Условиям ТЗ не удовлетворяет.
0
 Аватар для Pphantom
2460 / 1604 / 741
Регистрация: 17.03.2022
Сообщений: 5,205
27.03.2025, 20:51
Цитата Сообщение от Verevkin Посмотреть сообщение
Не "ехать", а "шашечки"? Ясно-понятно.
Вы на первое сообщение в теме посмотрите. Это явно случай, когда выпендриваться не надо, нужно наиболее стандартное для данного конкретного языка решение.
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
27.03.2025, 21:54
Цитата Сообщение от Pphantom Посмотреть сообщение
Это явно случай, когда выпендриваться не надо
Выпендрёж - это printf()? Ну ладно, чо......
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6289 / 3013 / 1051
Регистрация: 01.06.2021
Сообщений: 11,321
27.03.2025, 22:51
Цитата Сообщение от zss Посмотреть сообщение
Но printf не подходит, например, для шаблонов.
можно прикрутить специализацию шаблона

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
template<class T>
void out(T x);
 
template<>
void out<int>(int x) {
    printf("%d", x);
}
 
template<>
void out<double>(double x) {
    printf("%f", x);
}
 
template<>
void out<const char*>(const char* x) {
    printf("%s", x);
}
и так далее

для С++17 можно так еще делать то же самое

C++
1
2
3
4
5
6
7
8
9
10
11
12
template<class T>
void out(T x) {
    if constexpr (std::is_same_v<T, int>) {
        printf("%d", x);
    } else if constexpr (std::is_same_v<T, double>) {
        printf("%f", x);
    } else if constexpr (std::is_same_v<T, const char*>) {
        printf("%s", x);
    } else {
        static_assert(sizeof(T) == 0, "Unsupported type for out()");
    }
}
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,193
28.03.2025, 02:49
Ближе к суровой реальности.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <typeinfo>
 
template<typename T>
void out(T x) {
    if (typeid(char*) == typeid(x))printf("%s\n", x);
    if (typeid(int) == typeid(x))printf("%d\n", x);
    if (typeid(float) == typeid(x))printf("%f\n", x);
}
 
 
int main()
{
    int myint = 50;
    char mystr[] = "string";
    float myfloat = 56.76;
    out(myint);
    out(mystr);
    out(myfloat);
return 0;
}
0
фрилансер
 Аватар для Алексей1153
6494 / 5722 / 1133
Регистрация: 11.10.2019
Сообщений: 15,282
28.03.2025, 08:00
Цитата Сообщение от Наталья8 Посмотреть сообщение
Ближе к суровой реальности
ещё ближе std::to_chars
0
1 / 1 / 0
Регистрация: 01.11.2015
Сообщений: 82
28.03.2025, 12:54  [ТС]
Спасибо большое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.03.2025, 12:54

Умножение переменных
Добрый вечер. В программе использую натуральный логарифм и не совсем уверен, правильно я прописываю условия. Просто разобраться хочу....

Написать программу, которая, используя перегрузку функций, вычисляет умножение двух и трех переменных
Написать программу, которая, используя перегрузку функций, вычисляет умножение двух и трех переменных.

Поменять местами значения целых переменных х и у не используя дополнительных переменных
Знаю, что это очень простая задача, но никак не могу сделать, пожалуйста помогите!!! Поменять местами значения целых переменных х и у не...

Даны 5 переменных a,b,c,d,e - необходимо каждой из этих переменных присвоить число из текстового документа
Есть у меня текстовый документ, в котором записаны 5 чисел. Каждое число в новой строчке. Предположим: 893 42 8 745 43 Даны 5...

Зануление переменных, при считываний этих переменных с текстового файла
Добрый вечер! Моя задача состоит в том чтобы встроить программу из архива vsput в программу из архива planet rotation( Кнопка 10) В...


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов • Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp • Смежный проект:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru