2017-05-15 8 views
-4

要素数がユーザーによって選択される配列があります。ユーザーが要素の数を選択した後、各要素の値を導入します。その後、プログラムは2または3要素の和を計算して、それが配列内で見つかることができるコレスポンデント値を見つける必要があります。例のために、私は休暇の値を持っています: 3,6,4,9 ---> 3 + 6 = 9そして4はこの合計の!=である番号です。このタイプの例では、私は合計を計算する方法を見つけました。 私がex:9,4,6,3 ---> 3 + 6 = 9を変更した場合このようにして、右から左に要素を合計する方法はありません。coz 3は配列のN番目の要素です。左から右へ、右から左へ要素を追加しようとするN番目の要素の配列

コードは、誰かが任意のideeaやアドバイスを持っている場合、それは素晴らしいことだろうC

で書かれています。どうも !

+3

コードを記述しないでください。それを示す。 –

+0

ようこそスタックオーバーフロー!あなたの質問を編集して[これまでに行ったコード](http://whathaveyoutried.com)を表示してください。問題を抱えているコードのアウトライン(ただし、好ましくは[mcve])を含める必要があります。次に、特定の問題を解決することができます。 [ask]も読んでください。 –

+0

pus = &a[0]; e = * pus; for(b = 0; b Bob

答えて

0

私はあなたの質問を正しく理解していて、あなたがCで書いていると仮定すると、簡単なアプローチですが(O(n^3)のコストは非常に高くなります)互いの要素とそれを比較し、各要素と比較する...混乱?

コードは、上記のアプローチのために、以下のようなものになるだろう:上記のコードは、そのコストのために実装するのに有用であるものに近いものではないと私はのみのためにそれを提供していますことを

for (int i=0; i<ArrayLength; i++){ 
    for (int j=0; j<ArrayLength; j++){ 
     int tempVar = Array[i] + Array[j]; // Calculate every element with every other element 
     for (int k=0; k<ArrayLength; k++){ // Check if that calculation meets equality with another Array Element. 
       if (k==i || k==j) continue; 
       if (tempVar == Array[k]) 
        printf("You have a match for the sum of %d and %d elements with the element in position %d\n",Array[i],Array[j],Array[k]); 
     } 
    } 
} 

注意アルゴリズム的なアイデアの目的。

アルゴリズムのアイデアよりも多くのヘルプが必要な場合は、コードの一部を入力してください。

+0

私はポストコードを持っています – Bob

0
printf("\nArray size: ",y); 
    scanf("%d",&y); 
    printf("\nValues: ",n); 
    w=0; 

     for(b=0 ; b < y ; b++) 
    { 
     scanf("%d",&a[b]); 
     printf("\nElements are [%d]: %d \n",b,a[b]); 
} 

    pus=&a[0]; 
    e=*pus; 

for(b=0; b < y;b++) 
{ 
    d = e + *(pus+1); 
    if(d==*(pus+b)) 
     printf("\nIt found element [%d]: %d\n",b,d); 
     else 
      r=d + *(pus+2); 
      if(r==*(pus+b)) 
       printf("\nIt found element [%d]: %d\n",b,r); 
} 
関連する問題