【问题标题】:For Loop Executing only once in cppFor循环在cpp中只执行一次
【发布时间】:2019-11-17 06:55:28
【问题描述】:

嘿,我正在尝试运行这段代码,但 for 循环只执行一次。 删除行 cout

int n,i;
cin>>n;
double a[n];
for(i=0;i<n;i++){

    cin>>a[i];
    a[i]=(a[i]/100);
    cout<<fixed<<setprecision(15)<<a[i];
}
for(i=0;i<n;i++) {
    cout<<a[i];
}

【问题讨论】:

  • 它对我有用!你确定你正在编译正确的文件吗?
  • 无耻的插件——但做得很好:)

标签: c++


【解决方案1】:

首要任务

使用可变长度数组 (VLA) 不是标准 C++。一些编译器支持它作为扩展。如果你被允许使用std::vector, 使用

std::vector<double> a(n);

如果不允许使用std::vector,请使用

double* a = new double[n];

并确保使用

delete [] a;

在函数结束之前。

帮助您诊断问题的建议

在输入数据和消息之前添加适当的提示以指示所读取的内容。

for(i=0;i<n;i++)
{
    cout << "Enter number for a[" << i << "]: ";
    cin>>a[i];
    a[i]=(a[i]/100);

    // Make sure to add endl at the very end.
    cout<< "Value of a[" << i << "]: " << fixed << setprecision(15) << a[i] << endl;
}

【讨论】: