21xrx.com
2024-12-22 21:19:03 Sunday
登录
文章检索 我的文章 写文章
如何在C++中输入分数
2023-07-11 04:16:28 深夜i     --     --
C++语言 输入 分数

在计算机程序设计中,分数是一个非常常见的概念。在C++中,也常常需要输入分数数据进行处理。下面介绍三种在C++中输入分数的方法。

方法一:使用两个整型变量表示分子和分母

一种最简单的方法是将分数表示为两个整型变量,分别表示分子和分母。通过读取两个整型变量并确保分母不为0,程序可以将这两个整型变量转换为分数表达式。

示例代码:


int numerator, denominator;

cout << "请输入分子和分母:";

cin >> numerator >> denominator;

if (denominator == 0)

  cout << "分母不能为0!" << endl;

else {

  double result = (double)numerator / denominator;

  cout << "输入的分数是:" << result << endl;

}

方法二:使用带有分数类的类

我们可以声明一个带有分数类的类,并且重载运算符,来实现输入、输出和计算分数的功能。该方法适用于需要处理大量分数数据的情况。

示例代码:


class Fraction {

public:

  int numerator, denominator;

  Fraction(int num, int deno) : numerator(num), denominator(deno) {}

  Fraction operator* (const Fraction& f) {

    return Fraction(numerator * f.numerator, denominator * f.denominator);

  }

};

istream& operator>> (istream &is, Fraction &f)

  char slash;

  is >> f.numerator >> slash >> f.denominator;

  return is;

ostream& operator<< (ostream &os, const Fraction &f)

  os << f.numerator << "/" << f.denominator;

  return os;

int main() {

  Fraction f1(1, 2);

  Fraction f2(3, 4);

  cout << "输入第一个分数:" << endl;

  cin >> f1;

  cout << "输入第二个分数:" << endl;

  cin >> f2;

  cout << "你输入的分数是:" << endl;

  cout << f1 << " " << f2 << endl;

  Fraction result = f1 * f2;

  cout << "计算得到的结果是:" << result << endl;

}

方法三:使用字符串输入分数

最后一种方法是使用字符串作为输入分数值的方式。程序可以先读取一个表示分数的字符串,然后解析字符串,以获得其中的分子和分母。

示例代码:


#include <sstream>

#include <iostream>

using namespace std;

struct Fraction denominator;

;

int parse(string str, char delimiter) {

 stringstream ss(str);

 string token;

 getline(ss, token, delimiter);

 return stoi(token);

}

Fraction getFraction(string str) {

 int pos = str.find("/");

 if (pos == string::npos) {

  return {stoi(str), 1};

 } else {

  return {parse(str.substr(0, pos), ' '), parse(str.substr(pos + 1))};

 }

}

int main() {

 string input = "3/4";

 Fraction f = getFraction(input);

 cout << f.numerator << "/" << f.denominator << endl;

 return 0;

}

以上三种方法可以帮助你在C++中输入分数,具体使用方法可以根据自己的需要选择。无论选择哪种方法,建议在输入时加上必要的输入流检查,以确保程序的稳健性和安全性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复