C++ 在C+;中的数组中查找最低值时出错+;
请帮助我从function4中的数组中找出最小值。我每次都得到0分。有时我会将数组第一个索引处的值作为最小值。请检查我的代码并帮助我解决问题C++ 在C+;中的数组中查找最低值时出错+;,c++,arrays,C++,Arrays,请帮助我从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)
#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';
}
#包括
使用名称空间std;
整数计数=0;
void函数1(int a[]{
for(count=0;count>a[count];
如果(a[计数]==0)
中断;}
}
int函数2(int a[]{
整数和=0,平均值=0;
对于(int n=0;n也许你会被这条线弄糊涂:
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\u元素
例如:
std::cout << "Minimum value is : " << *std::min_element(a,a+99) << std::endl;
代码> STD::CUT看起来你是在尝试学习编程本身,而不仅仅是C++。
如果您想了解C++如何在容器中获取较小的元素,我建议您查看STL文档。
这是以前在这里提出的问题:
但您肯定还需要一些提示:
直观地命名函数。function4
对于一个函数来说是一个糟糕的名字,它的意思是在容器中查找最低/最小/最小值。如何调用它minimum
在发帖前搜索。StackOverflow足够聪明,可以在你打字时搜索你
将数组传递给函数的方式是一个问题。您的函数对数组大小进行假设,但没有任何保证。如果您只是将声明从a[100]
更改为a[10]
您的程序将访问数组边界以外的数据。有许多解决方案。例如,包括一个额外的参数,告诉数组大小或使用std::vector
。
1、请研究如何在C++中传递参数(特别是数组)。
重要提示:您的数据正在通过控制台输入由function1()
填充。**您确定在数组中填充了100个值,没有一个是零吗?**如果数组中有任何0
且没有负输入,那么最小值显然是0
听起来你可能需要学习如何使用调试器来逐步完成代码。有了一个好的调试器,你可以逐行执行你的程序,看看它偏离了你的预期。如果你要做任何编程,这是一个必不可少的工具。进一步阅读:我知道错误在函数4中(只有3行)但是我对C++是新的,所以我无法找出错误。所以,“使用调试器”的哪一部分对你来说还不清楚?是的!实际上我的编译器要求我添加G+支持,我不知道它是什么。(我刚才说的我是C++的新手)你的所有函数都假设你已经读了100个数组中的值。