用于在列(C ++)中输出对数函数结果的合适循环

时间:2015-09-21 13:29:50

标签: c++ for-loop while-loop do-while

我在C ++中有一些代码,它为一个输入的数字计算log2(n)。

#include <iostream>
#include <cmath>

using namespace std;

double log(double a, double b) {
    return log(b) / log(a);
}

int main() {
    int n;
    cin >> n;
    cout << (int)log(2, n);
    return 0;
}

如何使用n个输入的数字。因此,例如,5个数字的输入必须是这样的(自身线上的每个数字):

5 // Enter amount of numbers below
24958 // Enter the first number
48569 // ... second number...
48564
40506
59232

输出将是:

14
15
15
15
15

2 个答案:

答案 0 :(得分:0)

您应该使用数组来存储数字。

#include <iostream>
#include <cmath>

using namespace std;

double log(double a, double b) {
    return log(b) / log(a);
}

int main() {
    int iter, i;

    cin >> iter;
    int arr[iter];

    for ( i=0; i<iter; i++)
       cin >> arr[i];

    for ( i=0; i<iter; i++)
       cout << (int)log(2, arr[i])<<endl;

    return 0;
}

答案 1 :(得分:0)

你能说明你用来解析用户输入的代码吗?如果您尚未创建此类代码,请执行以下操作:

  1. 读取用户输入并将第一行存储在字符串中并将其转换为整数(请查看std :: getline)
  2. 循环n次,并使用getline读取剩余的条目,调用对数方法并显示其输出