Выходной результат - распечатать самое дальнее число из x из массива мой код, во всех случаях, только распечатать nan, я часами смотрел на свой код, но все равно ничего не получил, хотя знаю, что что-то пошло не так.
Ошибка не отображается.Итак, я не знаю, что делать, я новичок, и я знаю, что этот вопрос может показаться глупым, но может кто-нибудь помочь мне, пожалуйста: ((
#include <iostream>
#define MAX 100
#include <cmath>
using namespace std;
void nhap(float a[] ,int &n)
{
int x;
do
{
cout<< "\nnhap so n: ";
cin >> n;
cout<< "\nnhap so x: ";
cin >> x;
if(n<0 || n> MAX)
cout << "\nsai roi, moi nhap lai ";
}
while(n<0 || n >MAX);
for(int i=0; i<n; i++)
{
cout << "a[" << i << "]= ";
cin >> a[i];
}
}
void xuat(float a[], int &n)
{
for(int i=0; i <n; i++)
{
cout << a[i] << " ";
}
}
void taomang (float a[], float b[], int &n, int x)
{
for (int i=0; i<n; i++)
b[i] = abs(a[i] - x);
}
float xaxnhat(float a[], float b[], int &n)
{
int s = b[0];
for(int i=0; i<n; i++)
{
if(b[i]>s)
{
s=b[i];
}
}
return s;
}
float xuatketqua (float a[], float b[], int n)
{
int k = xaxnhat(a,b,n);
for (int i=0; i<n; i++)
{
if (b[i] == k)
return a[i];
}
}
int main()
{
int n;
float a[MAX];
float b[MAX];
nhap(a,n);
xuat(a,n);
cout << " \ngia tri xa gia tri x nhat la: ";
cout << xuatketqua(a,b,n);
return 0;
}
например массив:19 434 23 55 7 x: 2, то самое дальнее значение от x равно: 434