注册 登录
编程论坛 C++教室

[求助]用指针存储数据后比较大小

terryf50 发布于 2008-12-11 10:53, 1496 次点击
我想用指针存储一些数据后比较他们的大小,例如:float *a=new float[15];  cin>>*(a+i); 然后比较他们的大小,找出最小(最大)值。
现在问题是*a是指针,可以用cout<<a+i; 输出其数值,但是不能比较大小。
想请教下用指针类型存储的数据怎么进行大小比较。
自己写了个函数:
float max(float *p)   //在主函数中可以用  max(*a) 传参数近来.
    {
        for(int i=0;i<15;i++)
        {
            return(*(p+i)<*(p+i+1))? *(p+i):*(p+i+1);
        }
    }
2 回复
#2
lonmaor2008-12-11 11:19
程序代码:

#include "stdafx.h"
#include <iostream>
using namespace std;

const int MAX = 15;

float max(const float* pf)
{
        static float maxnum = *pf;
        for (int i=0; i!=MAX-1; ++i)
        {
                maxnum = *(++pf)>maxnum?(*pf):maxnum;
        }
        return maxnum;
}

int main(int argc, char* argv[])
{
        float* p=new float[MAX];
        for (int i=0; i!=MAX; ++i)
        {
                cin>>*(p+i);
        }
        cout<<endl<<"max num is "<<max(p)<<endl;
        delete [] p;
        return 0;
}
调了几调才成功,咳,基本功不扎实呀。。居然还会犯低级错误。。

[[it] 本帖最后由 lonmaor 于 2008-12-11 11:22 编辑 [/it]]
#3
terryf502008-12-11 12:10
谢谢!
1