具有2个功能的简单程序不起作用

Jas*_*dle 1 c++

我是C++的新手并尝试制作两个简单的函数,但出了点问题.

我正在尝试执行以下操作:

1.Function for input some data.
2.Function to show what data is input.
Run Code Online (Sandbox Code Playgroud)

我只是想简单一点.我到目前为止写的代码是:

#include <iostream>
void masiv()
{
  int x[10];
  int n, i;
  int min;
  int max=0, imax=0, imin;

  cout << "Enter the number of elements: ";
  cin >> n;

  for(i=0; i < n; i++)
  {
      cout << "Input value for x["<<i<<"]=";
      cin >> x[i];

  if (min > x[i])
  {
      min = x [i];
      imin = i;
  }

  if (max < x[i])
  {
     max = x[i];
     imax = i;
  }
}
void rezult()
{
  cout << "the smallest value on is xthe biggest value on is x["<<imin<<"]=" << min <<endl;
  cout << "nai golqmata stoinost e na x["<<imax<<"]=" << max <<endl;
}
void main()
{
  masiv();
  rezult();
}
Run Code Online (Sandbox Code Playgroud)

我收到了很多错误.我知道这是糟糕的代码,但正如我所提到的,我刚开始.谢谢

对不起我的英语

编辑:使用此代码.

#include <iostream>
using namespace std;

void masiv(int& min, int&max)
{
 int x[10];
 int n;
 int i;
 int imin, imax;
 cout << "Enter the number of elements: ";
 cin >> n;
 for(i=0; i < n; i++)
 {
  cout << "Input value for x["<<i<<"]=";
  cin >> x[i];
  if(min > x[i])
  {
    min = x [i];
    imin = i;
  }
  if(max < x[i])
  {
    max = x[i];
    imax = i;
  }
 }
}

 void rezult(int min, int max)
{
 cout << "the smallest value on is x= " << min << endl;
 cout << "the biggest value on is x= " << max << endl;
 system ("pause");
}

int main(int argc, char** argv)
{
 int min = 999999; 
 int max = -999999;
 masiv(min,max);
 rezult(min,max);
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

And*_*rsK 6

min变量从不初始化,应该初始化为一个大值.

您声明一个数组,int x[10];但稍后您允许用户输入值的数量,cin>>n而不检查它是否大于10或负数.这可能会导致问题.

max和min仅在函数masiv()中声明,它们不能在函数外部到达.如果你想让它们可访问,你可以将它们传递给函数,而不是在函数内声明它们:

void masiv(int& min, int&max) // pass by reference
{...}

void rezult(int min, int max)
{...}

int main(int argc, char** argv) // proper main prototype
{
   int min = 999999; 
   int max = -999999;
   masiv(min,max);
   rezult(min,max);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

编辑:并使用命名空间std添加; 在文件的开头

#include <iostream>
using namespace std;
Run Code Online (Sandbox Code Playgroud)

  • 我会用'INT_MAX`或`std :: numeric_limits`超过999999.这是一个很好的习惯. (2认同)