Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C+;中的数组中查找最低值时出错+;_C++_Arrays - Fatal编程技术网

C++ 在C+;中的数组中查找最低值时出错+;

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)

请帮助我从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';
 }
#包括
使用名称空间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个数组中的值。