加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

循环遍历c中的数组

发布时间:2020-12-16 04:55:16 所属栏目:百科 来源:网络整理
导读:我想循环遍历一个最大值为1000的数组.我使用文本文件中的值填充数组.我试图循环遍历该数组,但在我的for循环中,我不知道数组的长度,所以我不知道在for循环语句的第二部分放什么.例如:我有一个名为:int scores [1000]的数组;我正在尝试迭代这个数组并将分数
我想循环遍历一个最大值为1000的数组.我使用文本文件中的值填充数组.我试图循环遍历该数组,但在我的for循环中,我不知道数组的长度,所以我不知道在for循环语句的第二部分放什么.例如:我有一个名为:int scores [1000]的数组;我正在尝试迭代这个数组并将分数放入成绩类别.因此A = 90-100,B = 80-89,C = 70-79,D = 60-69,F = 0-59.

所以我不知道我的for循环会是什么样子:

for(int i = 0; i < ...; i++){

if(scores[i] > = 90 || scores[i] <= 100){

//Do stuff...

}

我想我也很困惑如何在最后获得每个类别的总计数.但在大多数情况下,它如何迭代这个数组.我知道sizeof(scores [])不会工作,因为这会给我int大小而不是数组本身的长度.提前谢谢!

解决方法

如果使用std :: vector( link),则可以添加元素并使向量动态更改大小.可以使用size()方法轻松查询该大小.如果你使用这样的数组,你必须自己跟踪它中的元素数量.

如果你有一个带有元素的向量文件,你的循环可能如下所示:

std::vector<int> scores;
// fill vector

for (unsigned int i=0; i<scores.size(); i++) {
  // use value
}

如果你必须使用数组并且实际上有一个scoreCount变量,其中包含了实数值,只需在循环中使用它:

for (int i=0; i<scoreCount; i++) {
  // use value
}

正如我在评论中提到的,第三个选项是使用您从未使用的值(通常为-1)初始化整个数组,然后将其用作填充与空数组位置的标记,如下所示:

for (int i=0; i<1000; i++) {
    scores[i] = -1;
}

// add real values to scores 

int i=0;
while (scores[i] != -1 && i < 1000) {
  // use value
  i++;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读