В программе мне нужно создать функцию для заполнения элементов в массиве типа double, а затем отобразить их с помощью другой функции show ().Теперь, когда я ввожу простые числа, вроде: 1,2,3,4,5;функция show не отображает эти числа, но вместо этого значения мусора, такие как: 8.586689e + 273.
Я не могу понять, что не так, особенно когда у меня здесь открыта другая программа, котораяпросто печатать цифры.
Вот код:
#include<iostream>
int fill(double arr[], int);
void show(const double arr[], int);
void reverse(double arr[], int);
const int size = 5;
using namespace std;
int main()
{
double arr[size];
int limit = fill(arr,size);
show(arr,limit);
reverse(arr,limit);
show(arr,limit);
return 0;
}
int fill(double arr[], int size)
{
cout<<"Enter the values to fill the array: "<<endl;
int i,temp;
for(i=0;i<size;i++){
cout<<"Enter entry #"<<i+1<<" : ";
cin>>temp;
if(!cin){
cin.clear();
while(cin.get()!='\n')
continue;
cout<<"Bad Input.Input Process Terminated.";
break;
}
else if(temp<0){
break;
arr[i]=temp;
}
}
return i;
}
void show(const double ar[], int n)
{
using namespace std;
for(int i=0;i<n;i++){
cout<<"Entry #"<<(i+1)<<": ";
cout<<ar[i]<<endl;
}
}
void reverse(double arr[], int limit)
{
cout<<"Reversing values..."<<endl;
double temp;
for(int i=0;i<limit/2;i++){
temp = arr[i];
arr[i]=arr[limit-i-1];
arr[limit-i-1]=temp;
}
}