Informatică, întrebare adresată de andrada1212, 8 ani în urmă

Se dau doi vectori (x de lungime k și y de lungime l) și un număr q. Sa se găsească pozițiile i și j astfel încât x[i]+y[j] sa fie cât mai aproape ca valoare de q.

Răspunsuri la întrebare

Răspuns de boiustef
3

Răspuns:

#include <iostream>

using namespace std;

int x[100], y[100], i,j,k,l,q,im,jm,s,dif, dmin;

int main()

{

   cout << "k="; cin >> k;

   cout << "introdu " << k << " numere prin spatiu..." << endl;

   for (i=0; i<k; i++)

       cin >> x[i];

   cout << "l="; cin >> l;

   cout << "introdu " << l << " numere prin spatiu..." << endl;

   for (i=0; i<l; i++)

       cin >> y[i];

   cout << "q="; cin >> q;

   s=x[0]+y[0];

   dif=s-q; if (dif<0) dif*=-1;

   dmin=dif; im=0; jm=0;

   for (i=0; i<k; i++)

   {

       for (j=0; j<l; j++)

       {

           s=x[i]+y[j];

           dif=s-q; if (dif<0) dif*=-1;

           if (dif<dmin)

           {

               dmin=dif; im=i; jm=j;

           }

       }

   }

   cout << im << " " << jm;

}

Explicație:

Variabile:

im,jm pozițiile curente pentru care x[i]+y[j] este cât mai aproape ca valoare de q.

dmin  diferența minimă găsită între x[i]+y[j] și q.

SUCCESE la cercetare... :)))

Alte întrebări interesante