C语言乘积数组难题?
数组是包含相同数据类型元素的容器。乘积数组难题中,查找所有元素的乘积。
在这个乘积数组难题中,我们需要找出数组中除元素外的所有元素的乘积。条件是你不能使用除法运算符,并且将其存储到另一个数组中。
为了解决这个问题,我们将创建两个乘积,一个用于所有左元素,另一个用于所有右元素。然后添加这个左乘积和右乘积以获得所需的乘积。
示例
#include<stdio.h>
#include<stdlib.h>
void productfind(int arr[], int n) {
int *left = (int *)malloc(sizeof(int)*n);
int *right = (int *)malloc(sizeof(int)*n);
int *prod = (int *)malloc(sizeof(int)*n);
int i, j;
left[0] = 1;
right[n-1] = 1;
for(i = 1; i < n; i++)
left[i] = arr[i-1]*left[i-1];
for(j = n-2; j >=0; j--)
right[j] = arr[j+1]*right[j+1];
for (i = 0; i < n; i++)
prod[i] = left[i] * right[i];
for (i = 0; i < n; i++)
printf("%d ", prod[i]);
return;
}
int main() {
int arr[] = {10, 3, 5, 6, 2};
printf("The array is :
");
int n = sizeof(arr)/sizeof(arr[0]);
for(int i = 0;i < n; i++){
printf("%d ",arr[i]);
}
printf("The product array is:
");
productfind(arr, n);
}输出
The array is : 10 3 5 6 2 The product array is: 180 600 360 300 900
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程语言
C++
C#
MongoDB
MySQL
Javascript
PHP