作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我制作了一个程序,它除以两个变量假设 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/
我是一名优秀的程序员,十分优秀!