原谅我的英语和我的无知(另外,我搜索了很多,但找不到这个问题的答案)。
我的程序有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行代码,但我找不到用循环改变第二个参数的方法。有没有办法用非常简单的方法处理这个?
答案 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]);
}
}