我提供的代码有什么问题?

时间:2015-07-28 06:37:34

标签: c++

#include<iostream>     
#include<math.h>

using namespace std;

int main()    
{        
    int x[100];         
    float a,f,t;

    cout<<" Enter the amplitude:";
    cin>>a;

    cout<<"Enter frequency:";
    cin>>f;

    f=1.0/f;

    cout<<"Enter the time interval::";
    cin>>t;

    int i=0;        
    while(i<t)
    {
        x[i] = a * sin(2 * 3.14 * f * t); 
        cout<<x[i]<<"  ";
    }

    return 0;       
}

当我运行它时,我只是获得了大量的值输出,都是一样的。例如,输入579可以获得连续输出:

4  4  4  4  4  4  4  4  4  4
4  4  4  4  4  4  4  4  4  4
4  4  4  4  4  4  4  4  4  4
4  4  4  4  4  4  4  4  4  4
4  4  4  4  4  4  4  4  4  4
4  4  4  4  4  4  4  4  4  4
:
and so on...

2 个答案:

答案 0 :(得分:2)

您既不会递增i也不会递减t,这意味着您的循环很可能是无限循环:

while(i<t)
{
    x[i] = a * sin(2 * 3.14 * f * t); 
    cout<<x[i]<<"  ";
 }

根据您的需要,可能在循环体内应该有i++之类的东西。

您可能还会发现每个数组元素都设置为相同的值,因为您在计算中使用t而不是i的某个函数。

答案 1 :(得分:-1)

您需要包含两个标题。

#include <iostream>
#include <cmath>