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:
#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... :)))