栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

浙大PTA基础编程题目集(解题记录)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

浙大PTA基础编程题目集(解题记录)

题目来源:https://pintia.cn/problem-sets?tab=0

7-1 厘米换算英尺英寸
#include
int main(){
    int cm;
    scanf("%d",&cm);
    int foot=cm/30.48;
    int inch=(cm/30.48-foot)*12;
    printf("%d %d",foot,inch);
    return 0;
}
7-2 然后是几点
#include
int main(){
    int t1,t2;
    scanf("%d %d",&t1,&t2);
    int minute=t1/100*60+t1%100+t2;
    int h=minute/60;
    int m=minute%60;
    printf("%d%02d",h,m);
    return 0;
}
7-3 逆序的三位数
#include
int main(){
    int i;
    scanf("%d",&i);
    int a=i/100;
    int b=i/10%10;
    int c=i%10;
    printf("%d",c*100+b*10+a);
    return 0;
}
7-4 BCD解密
#include
int main(){
    int x;
    scanf("%d",&x);
    int a =  x%16 + x/16*10;
    printf("%dn",a);
}
7-5 表格输出
#include
int main(){
    printf("------------------------------------n");
    printf("Province      Area(km2)   Pop.(10K)n");
    printf("------------------------------------n");
    printf("Anhui         139600.00   6461.00n");
    printf("Beijing        16410.54   1180.70n");
    printf("Chongqing      82400.00   3144.23n");
    printf("Shanghai        6340.50   1360.26n");
    printf("Zhejiang      101800.00   4894.00n");
    printf("------------------------------------n");
    return 0;
}
7-6 混合类型数据格式化输入
#include
int main(){
    float f1,f2;
    int i;
    char ch;
    scanf("%f %d %c %f",&f1,&i,&ch,&f2);
    printf("%c %d %.2f %.2f",ch,i,f1,f2);
    return 0;
}
7-7 12-24小时制
#include
int main(){
    int h,m;
    scanf("%d:%d",&h,&m);
    if(h>=0&&h<12)
        printf("%d:%d AM",h,m);
    else if(h==12)
        printf("%d:%d PM",h,m);
    else if(h==24)
        printf("%d:%d AM",h%12,m);
    else
        printf("%d:%d PM",h%12,m);
    return 0;
}
7-8 超速判断
#include
int main(){
    int s;
    scanf("%d",&s);
    if(s>60)
        printf("Speed: %d - Speeding",s);
    else
        printf("Speed: %d - OK",s);
    return 0;
}
7-9 用天平找小球
#include
int main(){
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    if(a==b && a!=c)
        printf("C");
    else if(a==c && a!=b)
        printf("B");
    else if(b==c && b!=a)
        printf("A");
    return 0;
}
7-10 计算工资
#include
int main(){
    int year,time,salary_hour=0;
    float salary;
    scanf("%d %d",&year,&time);
    if(year<=5){
        salary_hour = 30;
    }else salary_hour = 50;
    if(time<=40){
        salary=salary_hour*time;
    }else
        salary=salary_hour*40 + (time-40)*salary_hour*1.5
    printf("%.2f",salary);
    return 0;
}
7-11 分段计算居民水费
#include
int main(){
    int x;
    double y;
    scanf("%d",&x);
    if(x<=15)
        y=(double)4*x/3;
    else y=2.5*x-17.5;
    printf("%.2f",y);
    return 0;
}
7-12 两个数的简单计算器
#include
using namespace std;
int main(){
    int a,b;
    char op;
    cin>>a>>op>>b;
    switch(op){
        case '+':cout< 
7-13 日K蜡烛图 
#include
using namespace std;
int main(){
    double Open,High,Low,Close;
    cin>>Open>>High>>Low>>Close;

    if(Close < Open){
        cout<<"BW-Solid";
        if(Low < Open && Low < Close && High > Open && High > Close){
            cout<<" with Lower Shadow and Upper Shadow";
        }
        else if(Low < Open && Low < Close){
            cout<<" with Lower Shadow";
        }else if(High > Open && High > Close){
            cout<<" with Upper Shadow";
        }
    } else if(Close > Open){
        cout<<"R-Hollow";
        if(Low < Open && Low < Close && High > Open && High > Close){
            cout<<" with Lower Shadow and Upper Shadow";
        }
        else if(Low < Open && Low < Close){
            cout<<" with Lower Shadow";
        }else if(High > Open && High > Close){
            cout<<" with Upper Shadow";
        }
    }else{
        cout<<"R-Cross";
        if(Low < Open && Low < Close && High > Open && High > Close){
            cout<<" with Lower Shadow and Upper Shadow";
        }
        else if(Low < Open && Low < Close){
            cout<<" with Lower Shadow";
        }else if(High > Open && High > Close){
            cout<<" with Upper Shadow";
        }
    }
    return 0;
}

重复代码好多

7-14 求整数段和
#include
using namespace std;
int main()
{
    int a,b,cnt,sum=0;
    scanf("%d %d",&a,&b);
    if(a<=b){//竟然错在这里一直过不去,我吐吐吐了
        for(int i=a;i<=b;i++){
            printf("%5d",i);
            cnt++;sum += i;
            if(cnt%5==0 || i==b) cout< 
7-15 计算圆周率 
#include
using namespace std;
int main(){
    double sum=1.0;// pi/2
    double num=1.0;
    double t;// 阈值
    cin>>t;
    for(int i=1;num>t;i++){
        num *=(double)i/(2*i+1);
        sum += num;
    }
    printf("%.6f",sum*2);
    return 0;
}
7-16 求符合给定条件的整数集
#include
using namespace std;
int main(){
    int a,cnt=0;
    cin>>a;//a,a+1,a+2,a+3
    for(int i=a;i<=a+3;i++){
        for(int j=a;j<=a+3;j++){
            for(int k=a;k<=a+3;k++){
                if(i!=j&&j!=k&&k!=i){
                    printf("%d",i*100+j*10+k);
                    cnt++;
                    if(cnt%6==0){
                        printf("n");
                    }else printf(" ");
                }
            }
        }
    }
    return 0;
}
7-17 爬动的蠕虫
#include
using namespace std;
int main(){
    int n,u,d,i,cnt=0;
    cin>>n>>u>>d;
    for(i=1;cnt 

感觉有点小毛病

7-18 二分法求多项式单根
#include
#include
using namespace std;
double a3, a2, a1, a0;
double f(double x) {
    return a3 * pow(x, 3) + a2 * pow(x, 2) + a1 * pow(x, 1) + a0;
}
bool divide(double& a, double& b) {
    if (f((a + b) / 2) == 0||(b-a)<0.001) return true;
    if (f(a) * f(b) <= 0) {
        if(f(a)==0){
            b=0;
            a*=2;
        }
        if(f(b)==0){
            a=0;
            b*=2;
        }
        if (f((a + b) / 2) * f(a) > 0) {
            a = (a + b) / 2;
            divide(a, b);
        }
        if (f((a + b) / 2) * f(b) > 0) {
            b = (a + b) / 2;
            divide(a, b);
        }
    }
}
int main() {
    double a, b;
    cin >> a3 >> a2 >> a1 >> a0;
    cin >> a >> b;
    divide(a, b);
    printf("%.2fn", (a + b) / 2);
    return 0;
}

大佬们的代码是如此简洁呜呜呜,不像我呜呜呜

7-19 支票面额
#include
using namespace std;
int main(){
    int n;
    cin>>n;
    for(int y=0;y<100;y++){
        for(int f=0;f<100;f++){
            if(98*f==199*y+n){
                printf("%d.%d",y,f);
                return 0;
            }
        }
    }
    printf("No Solution");
    return 0;
}

说实话没有想到用for循环,呜呜呜

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604828.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号