在保持文件输出的同时限制控制台输出? C++
Limit console output while maintaining output to file? C++
语言:C++
我的任务是编写一个程序,允许用户输入 30 到 2000 之间的数字,并列出不超过该数字的质数。例如,用户输入数字 50.. 然后程序将找到 3 到 50 之间的每个质数并将其显示到控制台。我编写的代码就是这样做的。
第二组指令说将控制台输出限制为仅 10 个质数(无论用户输入什么),但将所有质数写入文件。
使用与之前相同的示例..这些是 3 到 50 之间的素数:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
控制台只需要显示其中的 10 个数字,其余的则写入文件。在将 ALL(无论多少)写入文件时,我是否可以在我的控制台上只显示 10 个整数?
提前感谢您的阅读,如果您需要更多信息来回答问题,请给我留言。
bool isPrime;
for(int n = 2; n < integer; n++) {
isPrime = isPrimeNumber(n);
if(isPrime == true)
cout<<n<<" ";
}
return 0;
}
int isPrimeNumber(int n) {
bool isPrime = true;
for(int i = 2; i <= n/2; i++) {
if (n%i == 0) {
isPrime = false;
break;
}
}
return isPrime;
您只需要一个计数器变量来跟踪您调用 cout 的次数。
//open file
int counter = 0;
for(int n = 2; n < integer; n++){
isPrime = isPrimeNumber(n);
if(isPrime == true){
if(counter < 10){
cout<<n<<" ";
counter++;
}
//Write to file
}
}
//Close file
加分:
isPrimeNumber returns 一个 bool 所以你的函数应该看起来像:
bool isPrimeNumber(int n)
然后您可以在 for 循环中删除您的 'isPrime' 变量,只需说:
if(isPrimeNumber(n))
如果您未指定比较,If 语句将隐式检查值是否为真。
您还可以稍微优化您的 isPrimeNumber 函数,方法是将其更改为以下内容(再次消除对 isPrime 变量的需要):
bool isPrimeNumber(int n){
for(int i = 2; i <= n/2; i++){
if (n%i == 0) return false;
}
return true;
}
语言:C++
我的任务是编写一个程序,允许用户输入 30 到 2000 之间的数字,并列出不超过该数字的质数。例如,用户输入数字 50.. 然后程序将找到 3 到 50 之间的每个质数并将其显示到控制台。我编写的代码就是这样做的。
第二组指令说将控制台输出限制为仅 10 个质数(无论用户输入什么),但将所有质数写入文件。
使用与之前相同的示例..这些是 3 到 50 之间的素数: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
控制台只需要显示其中的 10 个数字,其余的则写入文件。在将 ALL(无论多少)写入文件时,我是否可以在我的控制台上只显示 10 个整数?
提前感谢您的阅读,如果您需要更多信息来回答问题,请给我留言。
bool isPrime;
for(int n = 2; n < integer; n++) {
isPrime = isPrimeNumber(n);
if(isPrime == true)
cout<<n<<" ";
}
return 0;
}
int isPrimeNumber(int n) {
bool isPrime = true;
for(int i = 2; i <= n/2; i++) {
if (n%i == 0) {
isPrime = false;
break;
}
}
return isPrime;
您只需要一个计数器变量来跟踪您调用 cout 的次数。
//open file
int counter = 0;
for(int n = 2; n < integer; n++){
isPrime = isPrimeNumber(n);
if(isPrime == true){
if(counter < 10){
cout<<n<<" ";
counter++;
}
//Write to file
}
}
//Close file
加分:
isPrimeNumber returns 一个 bool 所以你的函数应该看起来像:
bool isPrimeNumber(int n)
然后您可以在 for 循环中删除您的 'isPrime' 变量,只需说:
if(isPrimeNumber(n))
如果您未指定比较,If 语句将隐式检查值是否为真。
您还可以稍微优化您的 isPrimeNumber 函数,方法是将其更改为以下内容(再次消除对 isPrime 变量的需要):
bool isPrimeNumber(int n){
for(int i = 2; i <= n/2; i++){
if (n%i == 0) return false;
}
return true;
}