一个简单的C++问题。新手不懂。。。。

ProblemDescription两个坐标点能确定一个矩形,请按矩形的面积大小进行排序输出。每一行给出两个坐标点x1,y1,x2,y2,表示一个矩形。请按要求输出面积。... Problem Description
两个坐标点能确定一个矩形,请按矩形的面积大小进行排序输出。每一行给出两个坐标点x1,y1,x2,y2,表示一个矩形。请按要求输出面积。当输入的x1,y1,x2,y2均为0时输入结束(不作处理)。(假设坐标点的值为0到1000之间的非负整数,行数不超过100)
处理到文件结束.
这是我写的:
#include<iostream>
using namespace std;
int main()
{
int x1,y1,x2,y2,s,x,y;
while(cin>>x1>>y1>>x2>>y2)
{
if(x1==0 && y1==0 && x2==0 && y2==0)
break;
else
{
x=x1-x2;
y=y1-y2;
s=x*y;
if(s<0)
s=-s;
else
s=s;
}
cout<<s<<endl;
}
return 0;
}
老师说没排序,要用数组,怎么写啊??
展开
 我来答
千年等回眸
2011-10-20 · 超过14用户采纳过TA的回答
知道答主
回答量:27
采纳率:100%
帮助的人:41.2万
展开全部
将s设置为一个较大的数组,比如说s[100],将每次计算的面积,按照排序算法存储进去。增加一个变量记录输入的次数。到输入结束之后,按照顺序输出。
算法是对的,就是要按照老师要求的格式再修改一下。当年学C++也是这样一步步走出来的。
兜兜的熊爸爸
2011-10-20 · 超过14用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:33.8万
展开全部
创建一个数组,将每次得到的s值存入该数组,全部存完后进行冒泡排序,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lonetraveller
2011-10-20 · TA获得超过674个赞
知道小有建树答主
回答量:757
采纳率:0%
帮助的人:371万
展开全部
不排序,怎么有大小之分。。。你比比对角线就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灵碧石ck
2011-10-20 · TA获得超过100个赞
知道答主
回答量:181
采纳率:0%
帮助的人:131万
展开全部
回答:
#include<iostream>
using namespace std;
int main()
{
int i,j,x1,y1,x2,y2,s,x,y;
int sz[100] = {0};
int Count = 0,empt;
while(cin>>x1>>y1>>x2>>y2)
{
if(x1==0 && y1==0 && x2==0 && y2==0)
break;
else
{
x=x1-x2;
y=y1-y2;
s=x*y;
if(s<0)
s=-s;
else
s=s;
sz[Count] = s;
Count++;
}
}
for (i = 0; i < Count-1; i++)
{
for (j = i+1; j < Count; j++)
{
if (sz[i] < sz[j])
{
empt = sz[i];
sz[i] = sz[j];
sz[j] = empt;
}
}
}
for (i = 0; i < Count; i++)
{
if (0 == sz[i])
{break;}
cout << sz[i] << endl;
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赫连沛凝ck
2011-10-20 · TA获得超过4178个赞
知道大有可为答主
回答量:2356
采纳率:100%
帮助的人:2528万
展开全部
#include <iostream>
#include <time.h>

using namespace std;

#define MAXlen 100

void sort(int a[][5],int n) {
int i,j,k;
int t;
for(i = 0;i < MAXlen - 1;i++) {
k = i;
for(j = i + 1;j < MAXlen;j++) {
if(a[k][4] > a[j][4]) k = j;
}
if(k != i) {
t = a[k][0];a[k][0] = a[i][0];a[i][0] = t;
t = a[k][1];a[k][1] = a[i][1];a[i][1] = t;
t = a[k][2];a[k][2] = a[i][2];a[i][2] = t;
t = a[k][3];a[k][3] = a[i][3];a[i][3] = t;
t = a[k][4];a[k][4] = a[i][4];a[i][4] = t;
}
}
}

int main() {
int i,s;
int point[100][5]; // point[i][0]:x1,point[i][1]:y1,point[i][2]:x2,point[i][3]:y2,point[i][4]:s
srand((unsigned int)time(NULL));
printf("\n排序前:\n");
for(i = 0 ; i < MAXlen ; i++) {
point[i][0] = (unsigned int)rand() % 1001;
point[i][1] = (unsigned int)rand() % 1001;
point[i][2] = (unsigned int)rand() % 1001;
point[i][3] = (unsigned int)rand() % 1001;
s = (point[i][2] - point[i][0]) * (point[i][3] - point[i][1]);
if(s < 0) s = -s;
point[i][4] = s;
if(i % 5 == 0) printf("\n");
printf("(%3d,%3d),(%3d,%3d):%7d ",point[i][0],point[i][1],point[i][2],point[i][3],point[i][4]);
}
printf("\n");
sort(point,MAXlen);
printf("\n排序后:\n");
for(i = 0 ; i < MAXlen ; i++) {
if(i % 5 == 0) printf("\n");
printf("(%3d,%3d),(%3d,%3d):%7d ",point[i][0],point[i][1],point[i][2],point[i][3],point[i][4]);
}
printf("\n\n");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式