T为样本数,N为每个样本中的元素个数。每个N元素中求不同S(S的值T、R、C表示形状用来求面积)得出的面积最大值。
#include<stdio.h>#define PI 3.14159
main()
{
int T,N,a,b,j;
float max,q[1000];
char s;
scanf("%d",&T);
for(int i=1;i<=T;i++)
{
while(scanf("%d\n",&N)&&(N>1000||N<=0));
/*这里不小心加了\n,发现奇怪的问题:N的值不再是我输入的值。结果也出现了问题,这是什么情况。查了百度说是略掉后面的空白字符,直到不是空白字符停止,可是怎么会改变N的值以及我要的结果*/
getchar();
for(j=0;j<N;j++)
{
scanf("%c",&s);
if(s=='T')
{
scanf("%d%d",&a,&b);
q[j]=a*b/2.0;
}
if(s=='R')
{
scanf("%d%d",&a,&b);
q[j]=a*b;
}
if(s=='C')
{
scanf("%d",&a);
q[j]=PI*a*a;
}
}
max=q[0];
for(int k=1;k<N;k++)
if(max<q[k])max=q[k];
printf("%.2f\n",max);
}
我知道怎么解,就是这个scanf()内加了个\n和百度说的不是很相同。。。好像讲的不是很清楚。。\n在scanf()中到底会产生什么影响。谢谢了,各位师父!