簡體   English   中英

如何計算循環執行了多少次? C ++

[英]How to count how many times a loop has been executed? c++

如何計算執行循環的次數我的代碼不符合我的預期,

在用戶輸入的n個數字之前找到質數並顯示它們並計數

總數

例如 數字輸入可以說7

在7之前有3個數字

所以它顯示2,3,5,7並且7之前有3個質數

#include <iostream>
using namespace std;

int main()
{

 int n, i, k;
 int counter = 0;
 bool isprime;


 cout << "Enter a positive integer n: "; 

 cin >> n;

 for(int k = 2; k <= n; k++)
 {
        isprime = true;

        for(int i = 2; i <= k - 1; i++)
            if(k%i == 0)
        {
                isprime = false;
        }

        if(isprime)
        cout << k << "\t";}



cout << "\nThere are " << counter << " primes less than " << n;
  return 0;
}

在您的示例中,計數器永遠不會從其初始值修改。 嘗試讓它計算您要計算的數量。

補充:...順便說一句。 更喜歡

for (i = 0; i < n; ++i)  

用於循環。 “ i <n”更慣用(更易於閱讀),而++ i通常比i ++更有效。

#include<iostream>
#include<string>
#include<cmath>

using namespace std;

int main()
{
    int num;
    int count = 0;

    cout << "Enter your range: ";
    cin >> num;

    for(int i = 1; i <= num; i++)
    {
        count = 0;
        for(int j = 2; j <= sqrt(i); j++)
        {
            if(i % j == 0)
            {
                count++;
                break;
            }
        }
        if(count == 0 && i != 1)
            cout << i << "   ";
    }
    cout << endl;
}

每當有質數時,這都會增加count變量。

#include <iostream>
using namespace std;

int main()
{

 int n, i, k;
 int counter = 0;
 bool isprime;


 cout << "Enter a positive integer n: "; 

 cin >> n;

 for(int k = 2; k <= n; k++)
 {
        isprime = true;

        for(int i = 2; i <= k - 1; i++)
            if(k%i == 0)
        {
                isprime = false;
        }

        if(isprime)
        {
            cout << k << "\t";
            counter++;
        }
 }



cout << "\nThere are " << counter - 1<< " primes less than " << n;

  return 0;
}

如上所述, counter不增加。

你應該做一個功能

isPrime?(int n)
{ 
    int sqrt_n = sqrt(n)
    for(int i = 2; i <= sqrt_n; i++){ //You could check only to sqrt(n)
    if(n%i == 0)
    {
            return false;
    }
    }
return true;
}

然后您可以按以下方式使用該功能:

int main()
{

 int n, i, k;
 int counter = 0;


 cout << "Enter a positive integer n: "; 

 cin >> n;

 for(int k = 2; k <= n; k++)
 {
    if(isPrime?(k)) {
       counter++;
       cout << k << "\t";
    }
cout << "\nThere are " << counter << " primes less than " << n;
  return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM