小编wir*_*0st的帖子

了解可变范围

我对可变范围感到困惑,并希望更好地理解它。

将cout奇数和coutevenS移到外部进行循环。代码正确执行。如果将其移入for循环,则代码将以不正确的odds和evenS值执行。

#include <iostream>
#include <vector>
#include <cmath>

int main()
{
    double evenS, oddS, pH = 0;
    std::vector<double> v1 = {2, 4, 3, 6, 1, 9};

    for(int i = 0; i < v1.size(); i++)
    {
        pH = v1[i];
        if(fmod(pH, 2) == 0)
        {
          evenS = evenS + v1[i];
        }
        else if(fmod(pH, 2) == 1)
        {
          oddS = oddS + v1[i];
        }
    }

    std::cout << evenS << "\n";
    std::cout << oddS << "\n";
}
Run Code Online (Sandbox Code Playgroud)

我期望如果在for循环之外递增,odds和evenS不会保持适当的值。但是,事实恰恰相反,这引起了我的困惑。

c++

2
推荐指数
1
解决办法
89
查看次数

如何重置std :: count返回值

std :: count返回一个值,在执行内部for循环后,对于变量'counter'中的所有字符,我需要将此值重置为0。目的是计算一个字符出现的次数。如果此字符在字符串中出现两次,则将其添加到变量d中。如果出现3次,则将其添加到变量“ e”。

不知道还有什么尝试,或者不确定是否有更好的功能可以达到我的目的。

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <cstring>

int main() {

    std::string data;

    std::vector<std::string> myString;
    std::vector<char> myChar;

    int d = 0, e = 0;

    std::ifstream inFile;

    inFile.open("C:\\Users\\Administrator\\Desktop\\c++ files\\input2.txt");

    if (!inFile) {

        std::cout << "oops";
    }

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

            inFile >> data;
            std::copy(data.begin(), data.end(), std::back_inserter(myChar));    //copy from string data to vector myChar via back inserter.
            char counter = 'a';

            for (int i = 0; i < 26; …
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
88
查看次数

标签 统计

c++ ×2