首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

结构体成员比较大小疑点

2013-06-25 
结构体成员比较大小问题4个结构体变量a,b,c,d,比较a.v、b.v、c.v、d.v的值,返回v值最大的两个结构体变量看似

结构体成员比较大小问题
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]分别指向最大的和第二大的
}

[解决办法]
typedef struct sp
{
int size;
int x;
int y;
int ud;
int lr;
}SP;

//排序
int Sort(struct sp p[4])
{
for (int i=4;i>0;--i)
{
int j=0;
for (;j<i-1;++j)
{
struct sp temp= p[j];
if (p[j].size < p[j+1].size)
{
p[j].size = p[j+1].size;
p[j+1] = temp;
}
}
}
return 0;
}

简单的排序,执行后,p[0]和p[1]就是你想要的。

热点排行