ccfcsp 2023-09-02

发布时间 2023-11-25 16:04:23作者: Fredddy

问题:

a。 80分档

1. 对于下标:题目中要求了下表n是从1开始

2.cout时要cout<<fixed<<value  注意要fixed 才能够输出完整的,不然只会输出前六位加上,且用e 的形式表示

 

代码:

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    //n caozuo m geshu
    double nx[1000]={0},ny[1000]={0};
    int m_ground[1000]={0},m_roof[1000]={0};
    int M_choose[1000]={0};
    double M_data[1000]={0};
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){cin>>M_choose[i]>>M_data[i];}
    for(int i=0;i<m;i++){cin>>m_ground[i]>>m_roof[i]>>nx[i]>>ny[i];}

    for(int i=0;i<m;i++)
        for(int j=m_ground[i];j<=m_roof[i];j++)
        {
            if (M_choose[j]==1)
            {nx[i]=M_data[j]*nx[i];
            ny[i]=M_data[j]*ny[i];}
            if(M_choose[j]==2)
            {double temp=nx[i];
                nx[i]=nx[i]*cos(M_data[j])-ny[i]*sin(M_data[j]);
            ny[i]=ny[i]*cos(M_data[j])+temp*sin(M_data[j]);
            }
        }
    for(int i=0;i<m;i++)
    {
        cout<<fixed<<nx[i]<<" "<<ny[i]<<endl;
    }
    return 0;
}