gpt4 book ai didi

c - 我现在正在学习如何使用数组,并且正在努力完成我的分配,以制作乘法表并获得平均值

转载 作者:行者123 更新时间:2023-11-30 14:33:42 27 4
gpt4 key购买 nike

分配包括创建一个乘法表,其中用户输入的被乘数和乘数的乘积存储在名为 myArray[12] 的数组中。然后 Average 函数必须有两个参数(Array 和 multiplier),它返回名为 myArray 的数组中元素的平均值。我也很困惑如何使“平均”成为一个单独的函数。

#include <stdio.h>
#include <stdlib.h>

int main(){
int num, i = 0, multiplier;
int myArray[12] = {};
double average;

printf("\n Enter a multiplicand: \n");
scanf("%d",&num);

printf("\n Enter the multiplier: \n");
scanf("%d", &multiplier);

for(i=1; i <= multiplier; ++i){
printf("%d * %d = %d \n", num, i, num*i);
}

myArray[i] = myArray[i] + num * 1;
average = myArray[i] / multiplier;
printf("%f\n", average);

return;
}

最佳答案

您正在将 i 从 1 循环到 multiplier,因此当您退出该循环时,i 将等于 multiplier + 1..然后你设置了myArray[i],但是myArray只定义了12个元素,所以如果i >= 12就会发生不好的事情此时。

我认为你想做的是:

  • 要求用户提供两个数字:nummultiplier
  • 计算从 1 到乘数之间的 i 值的 i * num
  • 对这些数字求平均值。

注意:我认为您的示例中 nummultiplier 的角色颠倒了,但我使用的是您的术语。

所以你这里有一些问题。首先,您需要分配足够的空间来保存您生成的值。

int *myArray = calloc(multiplier, sizeof (int));

现在 myArray 指向 multiplier 元素的 int 数组。

接下来,您应该将赋值移至循环内部的 myArray[i]。我认为您只想将其设置为 i * num

最后,要计算平均值,您必须将 myArray 中的所有值相加,然后除以 multiplier。但你说你必须把它写成一个函数。该函数必须采用:

  1. 指向值数组开头的指针,即 myArray
  2. 数组中值的数量,即乘数

这是要求您使用的两个参数。您应该像这样定义函数:

double calculate_average(int *array, int length) {
// Loop i from 0 to length here to add up array values,
// then divide by length.
}

然后在main中:

double average = calculate_average(myArray, multiplier);

关于c - 我现在正在学习如何使用数组,并且正在努力完成我的分配,以制作乘法表并获得平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59187383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com