【问题标题】:How to check every single element of my array (in a loop)?如何检查我的数组的每个元素(在循环中)?
【发布时间】:2018-03-16 13:40:41
【问题描述】:

我在 Fortran 中编程,如果我的数组的所有单个元素都是正数,我想执行语句 1,如果它们部分是正数,则执行语句 2,如果所有元素都是负数,则执行语句 3。

我知道我可能需要一个“do”循环和一个“if”结构,但不知道如何做到最好。

【问题讨论】:

  • 到目前为止你尝试了什么?看看 minval 和 maxval。
  • 欢迎您,拨打tour 并查看How to Ask。你怎么卡住了?你有没有遇到任何错误?哪些错误?哪个确切的代码?你可能只需要使用ALL(),见非常相似的stackoverflow.com/questions/8340592/…

标签: arrays loops fortran


【解决方案1】:

简单的条件不需要循环

 if (ALL(A>0)) then
    statement1
 else if (ALL(A<0)) then
    statement3
 else
    statement2
 end if

解释:A&gt;0 是一个逻辑值数组,基于评估原始数组A 的每个元素的条件。函数ALL() 然后减少这个逻辑数组,如果所有元素都为真则返回真,否则返回假。

您在标题中请求执行循环。如果您确实需要修复某个特定错误,则必须向我们展示您努力的代码、您的错误和所有其他重要细节。

【讨论】:

  • 但是我怎么能问是否恰好/更多/更少元素然后 x(之前在程序中定义的变量)是一个逻辑语句?
  • 如果我理解正确的话,还有另一个功能,COUNT()。如果您认为有必要,您可以提出一个新问题,首先搜索,如果之前没有提出过,请提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多