为什么我运算的时候只返回了一个值
时间: 2024-02-22 14:01:12 浏览: 28
可能是因为你使用的是普通的函数返回值,而不是数组函数。在Excel中,普通的函数只能返回一个值,而无法返回数组。如果你要返回一个数组,需要将函数的返回值类型设置为`Variant`类型的数组。
在代码中,我们将卷积结果存储在一个大小为`(rows1 + rows2 - 1) x 1`的一维数组`output`中,最后将其作为函数的返回值返回。在Excel中使用该函数时,需要将其放在一个数组公式中,例如,在一个大小为`(rows1 + rows2 - 1) x 1`的单元格区域中输入公式`=Convolution(A1:B5, C1:D3)`,然后按下`Ctrl+Shift+Enter`键,将公式转换为数组公式,此时卷积结果将按照纵向显示在该单元格区域中。
相关问题
写一个排序返回中间值C语言函数不能使用除法运算符号
好的,以下是一个不能使用除法运算符的C语言函数实现:
```c
int get_median(int arr[], int size)
{
int i, j, temp, median;
for (i = 0; i < size - 1; i++)
{
for (j = 0; j < size - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
if (size % 2 == 0)
{
median = (arr[size >> 1] + arr[(size >> 1) - 1]) >> 1;
}
else
{
median = arr[size >> 1];
}
return median;
}
```
这个函数与之前的函数非常相似,但是在计算中间值时不能使用除法运算符。取代除法运算符,我们使用位运算符来实现整数除以2的功能。具体地说,我们使用右移运算符" >> "来代替除以2,即将一个数右移一位相当于除以2。
写一个排序返回中间值C语言函数不能使用除法、取余运算符号
好的,以下是一个不能使用除法和取余运算符的C语言函数实现:
```c
int get_median(int arr[], int size)
{
int i, j, temp, median;
for (i = 0; i < size - 1; i++)
{
for (j = 0; j < size - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
if (size & 1)
{
median = arr[(size >> 1) + 1];
}
else
{
median = (arr[size >> 1] + arr[(size >> 1) + 1]) >> 1;
}
return median;
}
```
这个函数与之前的函数非常相似,但是在计算中间值时不能使用除法和取余运算符。取代除法运算符,我们使用右移运算符" >> "来实现整数除以2的功能。具体地说,我们使用右移运算符" >> "来代替除以2,即将一个数右移一位相当于除以2。取代取余运算符,我们使用" & "位运算符来实现。具体地说,如果一个整数n是偶数,那么n&1等于0;如果n是奇数,那么n&1等于1。我们可以利用这个性质来判断数组大小的奇偶性。