gpt4 book ai didi

c++ - 如何在 C++ 的循环中将两个变量相除直到商为 1

转载 作者:太空狗 更新时间:2023-10-29 23:17:17 26 4
gpt4 key购买 nike

我制作了一个程序,它除以两个变量假设 a 和 b,从一个文本文件中读取,但是这是一个循环,因为我想除以这些变量直到它的商为 1,这只适用于一个数字是可分割的,如果不可分割,它将指示/打印“无效”。到目前为止,这一切我已经陷入困境。希望有人可以给我建议如何做到这一点。

在我的文本文件 mytxt.txt 中。每行两个数字之间有一个空格。

27 3
40 4
1000 5
625 5

这是我到目前为止在我的代码中得到的内容

  #include <iostream>
#include <fstream>
int main() {

std::ifstream file("mytxt.txt");
if ( file.eof()) return 0;
int a, b, cnt=0;

while (!file.eof()) {
file>>a>>b;
loop:
std::cout<<a << " ";
a/=b;
if(a%b == cnt)
goto loop;
std::cout<<"\n";
}
file.close();
system("pause");
}

这个的输出是

27 9 3
40
1000 200 40
625 125 25 5
Press any key to continue . . .

但应该是这样的

27 9 3 1
Invalid
Invalid
625 125 25 5 1

最后有1应该有3/3。我的代码中应该有什么来执行此操作并插入一个条件,如果它不可整除,则打印“无效”。提前致谢。请原谅我的语法。

最佳答案

你在分割它之前正在打印 a...而且你不知道它什么时候“无效”。如果只想打印“无效”,我认为您需要将获得的值存储为除数,然后仅在该值达到 1 时打印它们。

并且您应该使用 while(file>>a>>b) 而不是 while(!file.eof()),因为您将运行一次循环如果您使用后者,则超出要求。

关于c++ - 如何在 C++ 的循环中将两个变量相除直到商为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18846874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com