这里的四舍五入转换也可以换成
m=(int)(m*100+0.5);
m/=100;
#include<iostream>
#include<math.h>
using namespace std;
double MyRound(double num,int i) //num 为要舍入的,i为保留几位小数,返值为舍入后的:
{
return int(num*pow(10.0,i)+0.5)/float(pow(10.0,i));
}
int main()
{
int i,j,temp,to[13],icase;
bool flag=0;
double arr[6][6],sum;
cin>>icase;
while(icase--)
{
if(flag)
cout<<endl;
flag=1;
for(i=1;i<=5;i++)
for(j=1;j<=5;j++)
cin>>arr[i][j];
while(cin>>j,j!=0)
{
temp=1;
for(i=0;i<j;i++)
{
cin>>to[i];
}
cin>>sum;
for(i=0;i<j;i++)
{
sum=MyRound(sum*arr[temp][to[i]],2);
temp=to[i];
}
sum=MyRound(sum*arr[to[j-1]][1],2);
cout.setf(ios::fixed);
cout.precision(2);
cout<<sum<<endl;
}
}
return 0;
}