【题目】
题目描述
某一天,狄仁杰收到一封秘密来信,纸上有人画了三个图形,分别是一个正方形,一个长方形和一个圆。
狄仁杰:“元芳,你怎么看?”
元芳:“大人,此事必有蹊跷!。。。。。。(此处省略10000字)。。。。。。”
经过元芳的分析,我们可以用尺测量正方形的边长,长方形的长和宽,还有圆的半径,那么面积最大的图形就是一个暗号。你的任务是用测量得到的数据,告诉元芳,哪个图形的面积最大。
输入
输入的第一行是一个正整数T,表示有T组测试数据。
然后是T行,每一行有4个正整数a,b,c,d,(a正方形的边长,b和c表示长方形的长和宽,d表示圆的半径)。
输出
对于每一组测试数据,输出最大的图形名称。如果正方形最大,输出Square,如果长方形最大,输出Rectangle,如果是圆最大,输出Circle
样例输入
31 2 3 44 3 2 12 8 3 2
样例输出
CircleSquareRectangle
提示
π=3.1415
不存在图形面积相等的情况!
来源
【想法】
可知:一组情况四个变量,凑成三个面积,需要Switch进行条件选择来输出
1.进行组数即循环次数的确定
int n;
scanf("%d",&n);
for(int i=0;i < n;i++){
//写其他模块
}
2.进行数据的读入和面积的计算
#define pi 3.1415//宏观定义
int n,a,b,c,d;double s1,s2,s3;
scanf("%d",&n);
for(int i=0;i < n;i++){
scanf("%d %d %d %d",&a,&b,&c,&d);
s1=a*a;s2=b*c;s3=pi*d*d;
//还需要进行大小比较和
//输出选择
}
3.大小比较和选择输出(即Switch)
int max(double a,double b,double c)//大小比较,写成函数
{
int flag=0;
if(a>b){//可以选择缩进调整空间位置
if(a>c){
flag=1;
}else{
flag=3;
}
}else{
if(b>c){
flag=2;
}else{
flag=3;
}
}
return flag;
}
void flag(int num)//同样自定义函数
{
switch(num){//当然也可以把Square这些写成变量,但运行可能不太行
case 1:printf("Square\n");break;
case 2:printf("Rectangle\n");break;
case 3:printf("Circle\n");break;
default:break;
}
}
【整体代码】
#include<stdio.h>
#define pi 3.1415
int max(double a,double b,double c)
{
int flag=0;
if(a>b){
if(a>c){
flag=1;
}else{
flag=3;
}
}else{
if(b>c){
flag=2;
}else{
flag=3;
}
}
return flag;
}
void flag(int num)
{
switch(num){
case 1:printf("Square\n");break;
case 2:printf("Rectangle\n");break;
case 3:printf("Circle\n");break;
default:break;
}
}
int main()
{
int n,a,b,c,d;double s1,s2,s3;
scanf("%d",&n);
for(int i=0;i < n;i++){
scanf("%d %d %d %d",&a,&b,&c,&d);
s1=a*a;s2=b*c;s3=pi*d*d;
flag(max(s1,s2,s3));
}
return 0;
}