帮我从function4中的数组中找出最小值。我每次都变0。有时我将数组的第一个索引处的值作为最小值。请仔细检查我的代码并帮助我解决问题。
#include <iostream>
using namespace std;
int count=0;
void function1(int a[]) {
for (count=0;count<100;count++) {
cin >> a[count];
if (a[count]==0)
break; }
}
int function2 (int a[]) {
int sum=0,avg=0;
for (int n=0;n<count;n++) {
sum=sum+a[n]; }
avg=sum/count;
return avg;
}
//maximum value
int function3 (int a[]) {
int max1=a[0];
for (int count=0;count<100;count++) {
if (a[count]>max1)
max1=a[count];
}
return max1;
}
//minimum value
int function4 (int a[]) {
int min1=a[0];
for (int count=0;count<100;count++) {
if (a[count]<min1){
min1=a[count];}
}
return min1;
}
int main () {
int a[100]={0};
function1(a);
cout <<"Average is : "<<function2(a)<<'\n';
cout <<"Maximum Value is : "<<function3(a) <<'\n';
cout <<"Minimum value is : "<<function4(a) << '\n';
}
答案 0 :(得分:0)
也许你可能会对这一行感到困惑:
int a[100]={0}; // This initlizes the whole array to zero.
int a[100]={SOME_VAL}; // This initlizes the first element to SOME_VAL, and the rest of the array to zero.
所以,可能数组有很多零,所以你得到的是最小值。
但是,您不需要自己制作此功能,只需使用std::min_element
示例:
std::cout << "Minimum value is : " << *std::min_element(a,a+99) << std::endl;
答案 1 :(得分:0)
看起来你正在尝试学习编程本身,而不仅仅是C ++。
如果您要了解C ++如何获取容器中较小的元素,我建议您查看STL文档std::min_element()
。
之前已在此处询问过:How to find minimum value from vector?
但是你肯定还需要一些提示:
function4
是函数的可怕名称,其含义是查找容器中的最小/最小/最小值。如何调用它minimum
?a[100]
更改为a[10]
,那么您的程序将访问数组边界外的数据。有很多解决方案。例如,包括一个告诉数组大小的额外参数或使用std::vector
。
1.请研究如何在C ++中传递参数(特别是数组)。请看Passing arrays to and from functions safely and securely开始。function1()
通过控制台输入填充。 ** 您确定要在数组中填写100个值吗?没有一个是ZERO? **如果您的数组中有任何0
并且没有负输入,那么显然{{1 }}值将为minimum
!