请问一道数组问题, 面向过程的方法,面向对象过程均遇到个问题 请大家帮忙看看
以这样一个程序作为开始,他允许用户输入整数的个数,然后将他们存储在int类型的数组中,写出一个名为maxint()的函数一个一个元素的,检查这个数组,查找出一个最大的。函数要将数组的地址和元素的个数作为参数,返回最大的元素的下标值。程序调用这个函数。显示最大的元素以及他的下标
面向过程:
#include <iostream>
using namespace std;
int main()
{
int n,i;
cout<<"please input integer number:";
cin>>n;
int integer[n];
cin>>integer[0];
int max=integer[0];
for (i=1;i<n;i++)
{
cin>>integer[i];
if (max<integer[i])
max=integer[i];
}
cout<<"the max number is"<<max<<endl;
cout<<"the subscript is"<<i-1;
system("pause");
return 0;
}
面向对象:
#include <iostream>
using namespace std;
class integer
{
private:
int n;
public:
void get_dist()
{
cout<<"please input number you want:";
cin>>n;
}
void maxint(integer);
void display()
{
cout<<"the max number is "<<n;
}
};
void integer::maxint(integer i)
{
if (n<i.n)
n=i.n;
}
int main()
{
int size;
cout<<"please input the number:";
cin>>size;
integer num[size],max;
num[0].get_dist();
max=num[0];
for (int i=1;i<size;i++)
{
num[i].get_dist();
max.maxint(num[i]) ;
}
max.display();
cout<<"..........";
system("pause");
return 0;
}
请问各位大侠 我的面向对象的思想正宗 吗。。。好像期间掺杂了不少面向过程的思想。。。这样好吗???
并且求出最大数的下角标,面向过程的下角标的数错误以及面向对象求下角标的方法,请各位指点一下~ 谢谢
[解决办法]
关于面向对象和面向过程,我不懂。不过你不是要求出下标么?我吧你的程序改成下面的:
- C/C++ code
#include <iostream> using namespace std; int main() { int n,i; cout <<"please input integer number:"; cin >> n; int integer*=new int[n]; cout <<"please input "<<n<<" integers :"; for(i=0;i<n;i++) { cin >> integer[i]; } int max=integer[0]; int iIterator=0; for (i=1;i<n;i++) { if(max <integer[i]) { max=integer[i]; iIterator=i; } } cout <<"the max number is" <<max <<endl; cout <<"the subscript is" <<iIterator; system("pause"); delete[] integer; return 0; }
[解决办法]
- C/C++ code
你可以将整个过程作为一个类,class Compute{public: void GetNumber(); int GetMaxNum();private: int m_iVec[1000];//暂且就用大数组吧, int m_iIndex; void SelectMaxNum();};现在只要输入一批数据,输出最大值就可以了,具体实现细节,封装在了类里面私有成员函数SelectMaxNum函数, 