C++请输入个,十,百位数字各不相同的所有三位数,结果写入f1.txt中,一个数一行。要求:输出时按从小到大的顺序输出
时间: 2024-11-13 15:22:17 浏览: 5
在C++中,你可以通过嵌套循环和文件操作来生成并保存所有满足条件的三位数。这里是一个简单的示例程序:
```cpp
#include <iostream>
#include <fstream>
#include <vector>
std::string generateThreeDigitNumber() {
std::vector<int> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // 十个数字
std::random_shuffle(digits.begin(), digits.end()); // 随机打乱
if (digits[0] != 0) { // 确保首位不是零
digits.insert(digits.begin(), 0); // 添加一个0到首位
}
std::ostringstream oss; // 字符串流用于构建字符串
oss << digits[0] << digits[1] << digits[2]; // 按照随机顺序组成数字
return oss.str();
}
int main() {
std::ofstream file("f1.txt"); // 打开文件
if (!file.is_open()) {
std::cerr << "无法打开文件 f1.txt!" << std::endl;
return 1;
}
for (int i = 0; i < 999; ++i) { // 只生成1000以内的三位数
int num = std::stoi(generateThreeDigitNumber()); // 转换回整数
file << num << std::endl; // 将数字写入文件,每行一个
}
file.close(); // 关闭文件
std::cout << "所有符合条件的三位数已成功写入f1.txt" << std::endl;
return 0;
}
```
这个程序首先创建一个包含0到9的数字向量,然后打乱顺序。接着它会确保第一位不是零,并将这三个数字拼接成一个字符串。在`main()`函数里,遍历从000到999的每一个三位数,将其转换为字符串写入文件。
阅读全文