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

更新於:2019 年 10 月 3 日

261 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始吧
廣告