结构体成员比较大小问题
4个结构体变量a,b,c,d,比较a.v、b.v、c.v、d.v的值,返回v值最大的两个结构体变量
看似很简单的东西,就是不好写....
大半夜的想得我头疼,求好心人指点下,谢谢!
[解决办法]
void zuida(char*a.v,char*b.v,char*c.v,char*d.v)
{
if(strcmp(a.v,b.v))
if(strcmp(a.v,c.v))
if(strcmp(a.v,d.v))
{puts(a.v);
void dierda(b.v,c.v,d.v);
}
}
void (char*b.v,char*c.v,char*d.v)
{自己填}
我想不到什么好办法,写两个函数调用
[解决办法]
#include <algorithm>
using namespace std;
struct A
{
A(int v) : v(v)
{
}
int v;
};
int main()
{
A a(8), b(2), c(3), d(10);
A *t[] = {&a, &b, &c, &d};
if (t[0]->v < t[1]->v)
{
swap(t[0], t[1]);
}
if (t[2]->v < t[3]->v)
{
swap(t[2], t[3]);
}
if (t[1]->v < t[2]->v)
{
swap(t[1], t[2]);
if (t[0]->v < t[3]->v)
{
swap(t[0], t[3]);
}
if (t[0]->v < t[1]->v)
{
swap(t[0], t[1]);
}
}
// 如果上面的没写错的话,现在t[0]和t[1]分别指向最大的和第二大的
}