ZCMU1024: 元芳,你怎么看?

【题目】

题目描述

某一天,狄仁杰收到一封秘密来信,纸上有人画了三个图形,分别是一个正方形,一个长方形和一个圆。

狄仁杰:“元芳,你怎么看?”

元芳:“大人,此事必有蹊跷!。。。。。。(此处省略10000字)。。。。。。”

经过元芳的分析,我们可以用尺测量正方形的边长,长方形的长和宽,还有圆的半径,那么面积最大的图形就是一个暗号。你的任务是用测量得到的数据,告诉元芳,哪个图形的面积最大。

输入

输入的第一行是一个正整数T,表示有T组测试数据。

然后是T行,每一行有4个正整数a,b,c,d,(a正方形的边长,b和c表示长方形的长和宽,d表示圆的半径)。

输出

对于每一组测试数据,输出最大的图形名称。如果正方形最大,输出Square,如果长方形最大,输出Rectangle,如果是圆最大,输出Circle

样例输入

3
1 2 3 4
4 3 2 1
2 8 3 2

样例输出

Circle
Square
Rectangle

提示

π=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;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值