提问人:john wang 提问时间:12/6/2022 最后编辑:273Kjohn wang 更新时间:12/6/2022 访问量:50
(C++) 将数组索引和它所保存的元素从一个函数移动到另一个函数
(c++) moving array index and element it holds from function to function
问:
我必须创建多个函数(没有限制),main 应该创建 75 个随机数。范围{0 到 100}。在另一个函数中,我需要添加奇数索引元素(称为 S2),并在另一个函数中添加偶数(S1)。另一个函数将打印 S1 和 S2 的答案。 我得到的实际问题:
使用 C++ 代码,编写一个程序来计算偶数的和 S1 和 S2 的乘积 (索引 0, 2, 4, 6, 8, ...)和向量的奇数(索引 1、3、5、7、9、...)元素 (或数组)n 的 A = [0,100] 范围内的 75 个随机整数。首先,创建并初始化 A 在函数 main 中使用 75 个随机整数。其次,even_sum接收的函数, 作为参数 A 和 n,并计算并返回 S1。第三,函数odd_sum 作为参数接收 A 和 n,并计算并返回 S2。最后,一个函数 finalize 接收 S1 和 S2 作为参数,并计算和打印 S1 的乘积 和 S2。
到目前为止,我完成了 main,在它里面创建了唯一的完全随机数。我无法将 Vales 从主功能移动到另一个功能。希望这是有道理的。我对编码很陌生,很想从中学习意见或评论家。
#include<iostream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <stdbool.h>
using namespace std;
void odd()
{
}
void fill(int array[], int length, int min, int max);//inital
int main()
{
srand (unsigned(time(NULL)));
cout<<"random 75 numbers are following: \n";
int a[75];
//void fill(int array[], int length, int min, int max);
fill(a, 75, 1, 100);
for (int i=0;i<75;i++)
{
printf("a[%d] = %d\n", i, a[i]);
}
}
void fill(int array[], int length, int min, int max)
{
int new_num;
bool unique;//verify if the new number is unique compared to array
for(int i=0; i<length; i++)//generate number, make sure its unique
{
do
{
new_num=(rand()%(max-min+1))+ min;
unique= true;
for(int j=0; j<i;j++)
if (array[j]==new_num)
unique= false;
}
while(!unique);
array[i]= new_num;
void odd();
}
// game plan is to go from main to odd fuction to even to finialize and in finalize, cout/print the sums
}
答:
0赞
AsulconS
12/6/2022
#1
该问题要求您计算两个依赖于 A 的总和,然后将这些结果相乘,因此在这种情况下,您可能希望通过将这些总和视为“函数”来模块化您的任务。让我解释一下
- 你想计算 A 的奇数索引数之和,所以你考虑了 2 个主要参数:A 及其长度,对吧?因此,让我们这样做:
// Here, you will define the odd_sum function
int odd_sum(int array[], int length)
{
// Here, you compute the odd-indexed values and accumulate them,
// For example, you may declare a
// int sum = 0;
// and start adding the values within a for loop
// Finally you return sum
return sum;
}
- 您要计算 A 的偶数索引数的总和,因此您执行的操作与前一个相同,但略有不同:
// Here, you will define the even_sum function
int even_sum(int array[], int length)
{
// Here, you compute the even-indexed values and accumulate them,
// For example, you may declare a
// int sum = 0;
// and start adding the values within a for loop
// Finally you return sum
return sum;
}
- 最后,您希望获得这些值并将它们相乘,因此在主函数中执行此操作可能并不困难:
int odd_sum(int array[], int length);
int even_sum(int array[], int length);
int main()
{
int a[75];
// Do your generating stuff
int oddSum = odd_sum(a, 75);
int evenSum = even_sum(a, 75);
int product = oddSum * evenSum;
printf("Product is %d", product);
}
上一个:嵌套类的模式?[已结束]
下一个:嵌套类公共方法将父类作为输入
评论
fill
odd
odd();