现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照以下方式排序(默认排序规则都是从小到大);
1.按照编号从小到大排序;
2.对于编号相等的长方形,按照长方形的长从小到大排序;
3.如果编号和长都相同,按照长方形的宽从小到大排序;
输入格式:第一行有一个整数 0 接下来的m行,每一行有三个数 ,第一个数表示长方形的编号, 第二个和第三个数值大的表示长,数值小的表示宽,相等说明这是一个正方形(数据约定长宽与编号都小于10000); 顺序输出每组数据的所有符合条件的长方形的编号、长、宽。如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形。 8 1 1 1 1 1 1 1 1 2 1 2 1 1 2 2 2 1 1 2 1 2 2 2 1 1 1 1 1 2 1 1 2 2 2 1 1 2 2 1 要详细解答并且告诉我过程哦 是C++代码哦 //随机化算法 用随机投点法计算定积分
#include
#include
#include
double Darts(int n,double a,double b);
double f(double x);//积分函数
main(){
int i,n[5]={100,1000,1000,10000,10000000};//随机投点个数,个数越多结果越精确
double a=1.0,b=2.0;//积分上下界
srand((unsigned)time(NULL)); //初始化随机数
for(i=0;i<5;i++)
printf("%d:\tn=%d\tr=%lf\n",i+1,n[i],Darts(n[i],a,b));
}
/* 基本思想是在矩形区域内随机均匀投点,求出由这些点
* 产生的函数值的算术平均值,再乘以区间宽度,即可得
* 出定积分的近似解
*/
double Darts(int n,double a,double b)
{
int i;
double sum = 0.0;
for(i=0; i
sum = sum + f(x);
}
return (b-a)*sum/n;
}
double f(double x){
return sin(x)/x;
上一篇:翻新轮胎有哪几种鉴别方法?
下一篇:成都蓝桥印象安全吗