通过for循环调用函数

Calling a function through a for loop

本文关键字:函数 调用 循环 for 通过      更新时间:2023-10-16

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

我有一个程序,它有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行代码,但我找不到用循环更改第二个参数的方法。有没有一种方法可以使用非常简单的方法来处理这个问题?

使用数组:

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

但你也需要传递单词。

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

我建议您使用以下原型创建一个函数。函数接受std::字符串并返回提取的单词:

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

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

很简单,您需要一个数组。这就是使用时main()函数的样子

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

只需通过添加循环来修改主函数。

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]);
}      
}