分化小数

 输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b<=1000000,c<=100.

输入包含多组数据,结束标记为a=b=c=0.

 

#include <iostream>  
#include <iomanip>  
#include <sstream>  

int main() {
    int a, b, c;
    std::string result;
    std::stringstream ss;

    // 循环读取输入,直到a=b=c=0  
    while (true) {
        std::cin >> a >> b >> c;
        if (a == 0 && b == 0 && c == 0) {
            break; // 结束标记  
        }

        // 转换为double进行除法运算  
        double divResult = static_cast<double>(a) / b;

        // 设置输出流的小数点精度  
        ss << std::fixed << std::setprecision(c) << divResult;

        // 获取格式化后的字符串  
        result = ss.str();

        // 清除stringstream中的内容,以便下次使用  
        ss.clear();
        ss.str("");

        // 输出结果,并去掉末尾可能出现的0和小数点  
        size_t dotPos = result.find('.');
        if (dotPos != std::string::npos) {
            while (result.back() == '0') {
                result.pop_back();
            }
            if (result.back() == '.') {
                result.pop_back();
            }
        }

        std::cout << result << std::endl;
    }

    return 0;
}

 

 

1.std::string result; 是C++代码的一行,它声明了一个名为 result 的变量,该变量的类型是 std::string。这里,std::string 是C++标准库中的一个类,用于表示和操作字符串。

具体解释如下:

  • std:::这是C++标准库的命名空间。C++标准库中的许多类和函数都定义在这个命名空间中。使用 std:: 前缀可以确保我们使用的是标准库中的 string 类,而不是某个用户自定义的同名类。
  • string:这是C++标准库中定义的一个类,用于表示字符串。它可以存储一系列字符,并提供了一系列操作这些字符的方法,比如连接、比较、查找子串等。
  • result:这是我们为 std::string 类型变量所取的名称。我们可以使用这个名称来引用这个变量,比如给它赋值、获取它的长度、修改它的内容等。

声明了这个变量之后,你就可以使用它来存储和操作字符串了。例如:

cpp复制代码
  std::string result;
  result = "Hello, World!"; // 给 result 赋值
  std::cout << result; // 输出 result 的内容,即 "Hello, World!"

在这段代码中,我们首先声明了一个 std::string 类型的变量 result,然后给它赋了一个值 "Hello, World!",最后使用 std::cout 输出了这个变量的内容。

 

std::fixed表示使用定点表示法(即包括小数点)

2.在C++的I/O流中,std::fixed是一个流操纵器(stream manipulator),用于控制浮点数的输出格式。当你使用std::fixed时,它告诉输出流以固定的小数点表示法来格式化浮点数,而不是使用科学计数法。

具体来说,固定小数点表示法意味着浮点数总是以小数点形式输出,无论其大小。即使浮点数的值非常大或非常小,也不会被转换为科学计数法形式(如1.23e+04)。相反,它会按照你设置的精度来输出指定数量的小数位

3.result 应该是一个已经定义并初始化为 std::string 类型的对象。back() 是 std::string 类的一个成员函数,用于返回对最后一个字符的引用

4.esult = ss.str(); 这行代码的作用是获取std::stringstream对象ss中当前的内容,并将其转换为一个std::string类型的字符串,然后将这个字符串赋值给变量result

5.本来是用devC++来编译的然后出现了“back”未声明的问题,查找了文心一言

 

 然后又换了VS来编译成功了。。。。。

嗯 先这样 晚安zz!

posted @ 2024-03-09 23:40  ZDhr  阅读(11)  评论(0编辑  收藏  举报