问题描述
- 怎样将随机输出的数经过简单计算再通过switch输出来
-
for(num=0;num<=9;num++){
ZBx=rand()%40;
ZBy=rand()%40;
a[ZBx][ZBy]='*';
Dis=sqrt((ZBx-20)*(ZBx-20)+(ZBy-20)*(ZBy-20));
sum+=Dis;
ave=sum/10.0;
switch(ave)
{
case ave>=9 && ave<=10:cout<<"A";break;
case ave>=8 && ave<=9:cout<<"B";break;
case ave>=7 && ave<=8:cout<<"C";;break;
case ave>=6 && ave<=7:cout<<"D";;break;
case ave>=0 && ave<=6:cout<<"E";;break;
}
解决方案
可以利用case标签的贯通性:
case 10:
case 9:
cout<<"A";break;
case 8:
case 7:
cout<<"B";break;
...
default:
cout<<"E";;break;
解决方案二:
浮点数?没看清,那就只能用if了。
解决方案三:
或者你加一个
aveint=sum/10;
然后 switch (aveint)
解决方案四:
取整啊
int ave=(int)ceil(sum/10.0);
switch(ave)
{
case 10:cout<<"A";break;
case 9 :cout<<"B";break;
case 8 :cout<<"C";;break;
case 7 :cout<<"D";;break;
default:cout<<"E";;break;
}
解决方案五:
switch不支持这样的值区间的,只能是固定的值。如case 9:。。。。。 还是老老实实用if (){}else if(){}吧、
解决方案六:
浮点数。。。用不了case
时间: 2024-09-19 14:59:27