Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Два действительных числа


Автор: Hetls 18.10.2016, 16:30
Даны два действительных числа х и у. Вычислить их сумму, разность, произведение и частное.
Исходные данные разместить на одной строке. Выдать информацию в виде:
а)отступить 10 позиций и напечатать:
ЗАДАНЫ ЗНАЧЕНИЯ
X=.... Y=....
б) пропустить 2 строки и напечатать ответ в виде
СУММА РАЗНОСТЬ ПРОИЗВЕДЕНИЕ ЧАСТНОЕ
под каждым наименованием напечатать соответствующее значение
в) подчеркнуть последнюю строку
г) отступить 10 позиций и напечатать: КОНЕЦ

Вообщем почему Dev C++ ругается на тип данных float и как это можно исправить, чтобы программа работала? (исходный код  на языке C++ расположен ниже)
Прошу, пожалуйста помочь! 

#include<iostream>// подключение библиотеки ввода и вывода
#include<cstdlib>// подключение стандартной библиотеки языка С++
using namespace std;

int main()
{
    float x, y, s, r, p, v;
    cin>> x;
       cin>> y;

    float s = x + y;
        float r = x - y;
        float p = x * y;
    float v = x / y;

    cout<<" Ввести x:";
    cin >>"%f", &x;
    cout<<" Ввести y:";
    cin >>"%f", &y;
    cout<<"%10c ЗАДАНЫЗНАЧЕНИЯ x=%f y=%f \n\n",' ', x, y>>;
    cout<<"%10c СУММА    РАЗНОСТЬ   ПРОИЗВЕДЕНИЕ   ЧАСТНОЕ \n", ' '>>;
    cout<<"x+y = "<< s <<endl;
        cout<<"x-y = "<< r <<endl;
    cout<<"x*y = "<< p <<endl;
    cout<<"x/y = "<< v <<endl;
    cout<<"%10c %.2f     %.2f       %.2f           %.2f \n", ' ', (s), ®, (p), (v)>>;
    cout<<"%10c ________________________________________ _\n", ' '>>;
    system("pause");
    return 0;
}

Автор: azesmcar 18.10.2016, 17:52
Цитата(Hetls @  18.10.2016,  16:30 Найти цитируемый пост)
Вообщем почему Dev C++ ругается на тип данных float

он не на тип данных ругается, а на redefinition.

Код

float x, y, s, r, p, v;


Код

float s = x + y;
float r = x - y;
float p = x * y;
float v = x / y;

переменные с такими именами уже были объявлены выше, кроме того cin используется неправильно. это не scanf, посмотри как использовать http://en.cppreference.com/w/cpp/io/cin. Тоже самое касается и http://en.cppreference.com/w/cpp/io/cout.

что за >> после cout-а?? а на строке
Код

cout << "%10c %.2f     %.2f       %.2f           %.2f \n", ' ', (s), ®, (p), (v) >> ;

я уже потерялся.

что это? smile 

Автор: Hetls 18.10.2016, 19:56
Цитата(azesmcar @ 18.10.2016,  17:52)

что за >> после cout-а?? а на строке
Код

cout << "%10c %.2f     %.2f       %.2f           %.2f \n", ' ', (s), ®, (p), (v) >> ;

я уже потерялся.

что это? smile

Насчёт ссылок спасибо, обязательно прочту.
А насчёт строки, я просто про бывал реализовать все 4 операции в одну строку (s-сложение и т.д.), как было сделано у меня на языке СИ.

вот программа на языке СИ:
#include <stdio.h>
#include <stdlib.h>



int main(int argc, char **argv)
{
    float X=0, Y=0; 
    printf(" Ввести X:");
    scanf("%f", &X);
    printf(" Ввести Y:");
    scanf("%f", &Y);
    printf("%10c ЗАДАНЫЗНАЧЕНИЯ X=%f Y=%f \n\n",' ', X, Y);
    printf("%10c СУММА    РАЗНОСТЬ   ПРОИЗВЕДЕНИЕ   ЧАСТНОЕ \n", ' ');
    printf("%10c %.2f     %.2f       %.2f           %.2f \n", ' ', (X+Y), (X-Y), (X*Y), (X/Y));
    printf("%10c ________________________________________ _\n", ' ');
    system("pause");
    return 0;
}



Автор: azesmcar 19.10.2016, 12:15
Код

#include <iostream>


int main(int argc, char **argv)
{
    float x = 0;
    float y = 0;

    std::wcout.imbue(std::locale("rus_rus.866"));

    std::wcout << L"Ввести X: ";
    std::cin >> x;
    std::wcout << L"Ввести Y: ";
    std::cin >> y;

    std::wcout << L"Заданы значения X=" << x << " Y=" << y << std::endl;
    std::wcout << L"Сумма, Разность, Произведение, Частное" << std::endl;
    std::wcout << x + y << ", " << x - y << ", " << x * y  << ", " << x / y << std::endl;
}


как-то так...

Автор: Hetls 19.10.2016, 14:44
Код

#include <iostream>


int main(int argc, char **argv)
{
    float x = 0;
    float y = 0;

    std::wcout.imbue(std::locale("rus_rus.866"));

    std::wcout << L"Ввести X: ";
    std::cin >> x;
    std::wcout << L"Ввести Y: ";
    std::cin >> y;

    std::wcout << L"Заданы значения X=" << x << " Y=" << y << std::endl;
    std::wcout << L"Сумма, Разность, Произведение, Частное" << std::endl;
    std::wcout << x + y << ", " << x - y << ", " << x * y  << ", " << x / y << std::endl;
}


Компилятор пишет про ошибку в 10 строке: converting to execution character set: Illegal byte sequence

Автор: azesmcar 19.10.2016, 16:22
Скорее всего скопировалось что-то не так или русские символы не нравятся. Проверь кодировку файла.

Добавлено через 5 минут и 31 секунду
по сути это все ради текста на русском. на английском все будет намного проще.

Код

#include <iostream>

int main(int argc, char **argv)
{
    float x = 0;
    float y = 0;
    std::cout << "input X: ";
    std::cin >> x;
    std::cout << "input Y: ";
    std::cin >> y;
    std::cout << "Values are X=" << x << " Y=" << y << std::endl;
    std::cout << "Add, Sub, Mul, Div" << std::endl;
    std::cout << x + y << ", " << x - y << ", " << x * y  << ", " << x / y << std::endl;
}


Автор: Hetls 19.10.2016, 17:17
Цитата(azesmcar @ 19.10.2016,  16:22)
Скорее всего скопировалось что-то не так или русские символы не нравятся. Проверь кодировку файла.

Добавлено @ 16:27
по сути это все ради текста на русском. на английском все будет намного проще.

Код

#include <iostream>

int main(int argc, char **argv)
{
    float x = 0;
    float y = 0;
    std::cout << "input X: ";
    std::cin >> x;
    std::cout << "input Y: ";
    std::cin >> y;
    std::cout << "Values are X=" << x << " Y=" << y << std::endl;
    std::cout << "Add, Sub, Mul, Div" << std::endl;
    std::cout << x + y << ", " << x - y << ", " << x * y  << ", " << x / y << std::endl;
}

Огромное вам спасибо, за оказанную мне помощь! Удачи!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)