0
点赞
收藏
分享

微信扫一扫

C++数位操作配套练习

微笑沉默 2022-02-11 阅读 58
c++蓝桥杯

(1)题目描述

 一个学生考了数学、英语、语文三门课程,求总分和平均分。

输入格式

输入存在多组测试数据,对于每组测试数据:
输入一行包含三个整数,表示数学、英语、语文分数。

输出格式

对于每组测试数据,输出两行,第一行输出他们的总分
第二行输出他们的平均分,其中平均分保留两位小数。

输入样例 

90 85 90
100 100 100

输出样例 

265
88.33
300
100.00
#include<iostream>
#include<cmath>
#include<string>
#include<string.h>
#include<cstdio>
#include<iomanip>
using namespace std;
typedef unsigned long long ull;

int main()
{
    ull n;
    double a,b,c;

    while(cin>>a>>b>>c)
    {
        cout<<a+b+c<<endl;
        cout<<fixed<<setprecision(2)<<(a+b+c)/3.0<<endl;
    }
    retun 0;

}

 (2)题目描述

1724年,德国人华伦海特制定了华氏温标,他把一定浓度的盐水凝固时的温度定为0℉,把纯水的冰点温度定为32 ℉。
把标准大气压下水的沸点温度定为212℉,中间分为180等份,每一等份代表1度,这就是华氏温标,用符号F表示。
而摄氏温度是C,冰点时温度为0摄氏度,沸点为100摄氏度。
请编程把华氏温度转成摄氏温度。转换公式是:c=(f-32)*5/9。

输入格式

输入有若干行,每行一个浮点数f代表华氏温度的度数。数字在[-100.00,212.00]之间。

输出格式

对于每个华氏温度输出一行,输出格式为:fF = cC。
其中f是输入的华氏温度的度数,c是对应的摄氏温度的度数。精确到小数点后两位。

输入样例 

32.00
98.00
0.00

输出样例 

32.00F = 0.00C
98.00F = 36.67C
0.00F = -17.78C
#include<iostream>
#include<cmath>
#include<string>
#include<string.h>
#include<cstdio>
using namespace std;
typedef unsigned long long ull;

int main()
{
    ull n;
    ull a,b,c;
    ull sum=0;
    double num,total=0;
    while(cin>>num)

    {
        printf("%.2lfF = %.2lfC\n",num,(num-32)*5/9.0);
        //这个用c方便些
    }
    return 0;
}

 

(3)题目描述

给出圆的半径,请求出圆的面积。PI用3.14159。半径用double类型。

输入格式

先输入一个整数N(1<=N<=10),表示有N种情况。
接着N行,每行一个数,表示圆的半径

输出格式

先输出"Case id:",id表示第几种情况,接着输出相应的圆的面积。结果保留3位小数。

输入样例 

3
2
1.1
70

输出样例 

Case 1: 12.566
Case 2: 3.801
Case 3: 15393.791
#include <iostream>
#include <iomanip>
#include<cstdio>
using namespace std;

typedef unsigned long long ull;
const ull MOD=0x3f3f3f3f3f;
const double PI=3.14159;

int main()
{
    int n;
    cin>>n;
    int i,j,k=1;

    while(n--)
    {
        double num;
        cin>>num;
        cout<<"Case "<<k<<": "<<fixed<<setprecision(3)<<PI*num*num<<endl;
        k++;
    }
    return 0;
}

 (4)题目描述

已知平行四边形ABCD中的三个点ABC,请编程求出第四个点D。

输入格式

输入有若干行,每行有6个整数,a1,a2,b1,b2,c1,c2。
表示A(a1,a2),B(b1,b2),C(c1,c2)。

输出格式

输出D的坐标,格式见样例。

输入样例 复制

5 0 0 0 1 1
3 2 5 4 4 5

这道题有点问题,没有说明是什么规律,这个答案应该不唯一才对(应该在加个说明)

不过观察一下也不难得出 

#include <iostream>
#include <iomanip>
#include<cstdio>
using namespace std;

typedef unsigned long long ull;
const ull MOD=0x3f3f3f3f3f;
const double PI=3.14159;

int main()
{
    int x1,x2,x3,x;
    int y1,y2,y3,y;
    while(cin>>x1>>y1>>x2>>y2>>x3>>y3)
    cout<<"D("<<x1+x3-x2<<","<<y1+y3-y2<<")"<<endl;
    return 0;
}

 

(5)题目描述

平面上有三个点A、B、C,求∠ABC的大小

输入格式

输入有若干行,每行有6个实数x1,y1,x2,y2,x3,y3。
表示平面上的三个点A(x1,y1),B(x2,y2),C(x3,y3)。

输出格式

输出∠ABC的大小,单位为度(0~180),结果保留两位小数。

输入样例 

3 0 0 0 0 1
-5 0 0 0 1 1

输出样例 

90.00
135.00
tips:对于  value = sin(angle)
angle=(value*180)/PI;
#include <iostream>
#include <iomanip>
#include<cstdio>
#include<cmath>
using namespace std;

typedef unsigned long long ull;
const ull MOD=0x3f3f3f3f3f;
const double PI=3.14159;


int main()
{
    double x1,x2,x3,x;
    double y1,y2,y3,y;
    //fix
    //double a,b,c,d;
    double sum=0,sum1,sum2,sum3;
    //错误  1 1 0 0 1 0
    while(cin>>x1>>y1>>x2>>y2>>x3>>y3)
    {
        sum1=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
        sum2=sqrt(pow(x3-x2,2)+pow(y3-y2,2));
        sum3=sqrt(pow(x1-x3,2)+pow(y3-y1,2));//sum3 把 y1 写成y2了
        //cout<<sum1<<endl<<sum2<<endl<<sum3<<endl;
        //sum3是对边
        double coso=(sum1*sum1+sum2*sum2-sum3*sum3)/(2*sum1*sum2);
        //cout<<coso<<endl;
        cout<<fixed<<setprecision(2)<<acos(coso)/PI*180<<endl;
        //反三角函数直接变成值了
        //cout<<acos(0);
        //根据cos的值求角度!!!
    }

}

(6)题目描述

floor(celi)与保留小数的应用 

计算表达式x^y的值,分别输出它们的整数部分和小数部分。

输入格式

输入有若干行,每行两个浮点数x、y。

输出格式

当x<0时,输出"NO",否则就输出x^y的整整部分和小数部分。小数部分按%lf格式输出。
如12.345的输出为"12 0.345000".

输入样例 

1.1 2
3.6 7.8
-3 0.5

输出样例 

1 0.210000
21835 0.317236
NO

 

#include <iostream>
#include <iomanip>
#include<cstdio>
#include<cmath>
using namespace std;

typedef unsigned long long ull;
const ull MOD=0x3f3f3f3f3f;
const double PI=3.14159;

long long time_plus(int a,int b)
{
    long long ans=1;
    while(b)
    {
        if(b&1)
        {
            ans*=a;
        }
        a*=a;
        b>>1;
    }
    return ans;
}
int main()
{
    double x,y;
    while(cin>>x>>y)
    {
        if(x<0)
        {
            cout<<"NO"<<endl;
        }
        else
        {
            double temp=pow(x,y);
            //floor
            cout<<floor(temp)<<" "<<fixed<<setprecision(6)<<temp-floor(temp)<<endl;
            cout.unsetf(ios::fixed);
        }
    }

}
举报

相关推荐

数位DP练习

C++练习

LintCode 练习【C++】

c++程序练习

P00604:数位和(c++代码)

c++日常练习(6)

0 条评论