我是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)
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)