在这个 C++ 程序中,函数print_nums
不接受
这vector<double>
调用时将数字作为实际参数switch_function
我想要add_num
函数接受向量作为参数,但我认为它会导致同样的错误!
请注意,提到的错误不会出现在这段代码中,但是当我编译这段代码和更改时,会出现许多错误和警告double min
to double minn
or double max
to double maxx
我对提到的错误很满意,顺便说一句,我仍然是 C++ 的初学者,所以请解释为什么我不能使用 min 和 max 这两个词,也是该函数的主要错误print_nums
以及任何其他错误或警告。
#include <iostream>
#include <vector>
#include <climits>
#include <cfloat>
using namespace std;
double mean{};
double min=FLT_MAX;
double max=FLT_MIN;
vector<double>numbers{};
char select;
char list();
void print_nums(vector<double>&numbers);
void program_func();
double nums_mean(double);
char switch_function(char);
void display_nums_mean(double);
int main(){
program_func();
return 0;
}
void program_func(){
while(select!='q'&&select!='Q'){
list();
switch_function(select);
}
}
char list(){
cout<<"Please select an Order\n";
cout<<"***********************\n";
cout<<"P-Print numbers\n";
cout<<"A-Add a number\n";
cout<<"M-Display the numbers mean\n";
cout<<"S-Display smallest number\n";
cout<<"L-Display largest number\n";
cout<<"Q-Quit\n";
cout<<"Order " ;
cin>>select;
cout<<endl;
return select;
}
void print_nums(const vector <double> &numbers){
if(numbers.size()!=0)
for(auto value : numbers)
cout<<value<<endl;
else
cout<<"Array is empty"<<endl;
}
void add_num(){
cout<<"How many numbers will be added to the list : ";
unsigned int num_of_nums;
double num;
cin>>num_of_nums;
cout<<endl;
cout<<"add numbers to the list : ";
for(unsigned int i=0;i<num_of_nums;i++){
cin>>num;
numbers.push_back(num);
}
return;
}
double nums_mean(double mean){
double sum{};
for(unsigned int i=0;i<numbers.size();++i){
sum+=numbers.at(i);
}
mean = sum/(numbers.size());
return mean;
}
double small_num(double min){
for(unsigned int i=0;i<numbers.size();++i){
if(min>=numbers.at(i)){
min = numbers.at(i);
}
}
return min;
}
double large_num(double max){
for(unsigned int i=0;i<numbers.size();++i){
if(max<=numbers.at(i)){
max = numbers.at(i);
}
}
return max;
}
void display_nums_mean(double mean){
cout<<"The mean of the numbers is : "<<mean<<endl;
}
void display_nums_min(double min){
cout<<"The minimum number is : "<<min<<endl;
}
void display_nums_max(double max){
cout<<"The maximum number is : "<<max<<endl;
return;
}
char switch_function(char select){
switch(select){
case 'p':
case 'P':
print_nums(numbers);
break;
case 'a':
case 'A':
add_num();
break;
case 'm':
case 'M':
mean=nums_mean(mean);
display_nums_mean(mean);
break;
case 's':
case 'S':
min=small_num(min);
display_nums_min(min);
break;
case 'l':
case 'L':
max=large_num(max);
display_nums_max(max);
break;
case 'q':
case 'Q':
return select;
default:
cout<<"Please Enter a valid character "<<endl;
}
return select;
}
You use using namespace std;
(改掉这个习惯)这意味着std::min
and std::max
被拉入从std
命名空间进入全局命名空间。这就是为什么您不能在自己的代码中使用这些名称,因为它们已经被定义了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)