通过for循环调用函数

时间:2017-10-06 21:41:43

标签: c++

原谅我的英语和我的无知(另外,我搜索了很多,但找不到这个问题的答案)。

我的程序有5个整数变量,广告素材名称为" num1"通过" num5"。我有一个辅助功能,需要两个参数,第一个参数是一个数字,1-5,而第二个参数是变量num1到num5的值(如果它有助于你概念化,我计算具体的单词数量单个用户条目中的长度。)

例如,如果用户输入短语"黑猫吃了一条煎鱼作为午餐"价值观将是:

num1 = 1 (a)
num2 = 0
num3 = 4 (the, cat, ate, for)
num4 = 1 (fish)
num5 = 3 (black, fried, lunch)

我的代码大部分都是这样的(我只发布了适用的部分,所以假设num1-num5变量已在其他地方给出了值):

int main()
{
    int num1, num2, num3, num4, num5;

    printCount(1, num1);
    printCount(2, num2);
    printCount(3, num3);
    printCount(4, num4);
    printCount(5, num5);
}

void printCount(int numberLetters, int numberWords)
{
    cout << numberLetters << "-letter words: " << numberWords << endl;
}

我试图找到一种方法来避免调用printCount()的5行代码,但我找不到用循环改变第二个参数的方法。有没有办法用非常简单的方法处理这个?

3 个答案:

答案 0 :(得分:2)

使用数组:

int nums[5];

// initialize array elements

for (int i = 0; i < 5; i++)
{
    printCount(i + 1, nums[i]);
}

但你也需要传递文字。

如果句子包含超过5个字母的单词怎么办?因此,使用固定大小的阵列并不是一种灵活的方式。

我建议您使用以下原型创建一个函数。函数需要std::string并返回提取的单词:

vector<vector<string>> extractWords(const string& sentence);

函数将返回向量的向量。每个内部向量将包含具有相同长度的单词。阅读std::vector

答案 1 :(得分:1)

很简单,你需要一个数组。这就是您的main()函数可能使用的函数:

int num[5];

for (int i = 0; i < 5; i++) {
    printCount(i+1, num[i]);
}

答案 2 :(得分:0)

只需通过添加循环修改main函数即可。

    int main()
        {
            int num1, num2, num3, num4, num5;
           int arr1[5] = {1,2,3,4,5};
           int arr2[5] = {num1,num2,num3,num4,num5};
           for(int i = 0 ; i <=sizeof(arr1)-1 li++){
                printCount(arr1[i], arr2[i]);
         }      

}