【PTA-C语言】实验一-顺序结构

  • 如果代码存在问题,麻烦大家指正 ~ ~

  • 有帮助麻烦点个赞 ~ ~

    实验一-顺序结构

    • [7-1 逆序的三位数(分数 10)](#7-1 逆序的三位数(分数 10))
    • [7-2 求整数均值(分数 10)](#7-2 求整数均值(分数 10))
    • [7-3 日期格式化(分数 10)](#7-3 日期格式化(分数 10))
    • [7-4 混合类型数据格式化输入(分数 10)](#7-4 混合类型数据格式化输入(分数 10))
    • [7-5 然后是几点(分数 10)](#7-5 然后是几点(分数 10))
    • [7-6 计算存款利息(分数 10)](#7-6 计算存款利息(分数 10))
    • [7-7 计算并联电阻的阻值(分数 10)](#7-7 计算并联电阻的阻值(分数 10))
    • [7-8 每天进步一点点(分数 10)](#7-8 每天进步一点点(分数 10))

7-1 逆序的三位数(分数 10)

作者 翁恺

单位 浙江大学

程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

输入格式:

每个测试是一个3位的正整数。

输出格式:

输出按位逆序的数。

输入样例:

cpp 复制代码
123

输出样例:

cpp 复制代码
321

鸣谢安阳师范学院软件学院李康康同学补充数据!

代码长度限制

16 KB
时间限制

400 ms
内存限制

64 MB

参考代码

c 复制代码
#include <stdio.h>

int main()
{
    int a, b, c, d;
    scanf("%d", &a);
    b=a/100;
    c=a/10%10;
    d=a%10;
    printf("%d", d*100+10*c+b);
    return 0;
}

7-2 求整数均值(分数 10)

作者 乔林

单位 清华大学

本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。

输入格式:

输入在一行中给出4个整数,其间以空格分隔。

输出格式:

在一行中按照格式"Sum = 和; Average = 平均值"顺序输出和与平均值,其中平均值精确到小数点后一位。

输入样例:

cpp 复制代码
1 2 3 4

输出样例:

cpp 复制代码
Sum = 10; Average = 2.5

代码长度限制

16 KB
时间限制

400 ms
内存限制

64 MB

参考代码

c 复制代码
#include<stdio.h>
main()
{
    int a, b, c, d, s;
    float ave;
    scanf("%d %d %d %d", &a, &b, &c, &d);
    s=a+b+c+d;
    ave = 1.0*s/4;
    printf("Sum = %d; Average = %.1f", s, ave);
    return 0;
}

7-3 日期格式化(分数 10)

作者 陈越

单位 浙江大学

世界上不同国家有不同的写日期的习惯。比如美国人习惯写成"月-日-年",而中国人习惯写成"年-月-日"。下面请你写个程序,自动把读入的美国格式的日期改写成中国习惯的日期。

输入格式:

输入在一行中按照"mm-dd-yyyy"的格式给出月、日、年。题目保证给出的日期是1900年元旦至今合法的日期。

输出格式:

在一行中按照"yyyy-mm-dd"的格式给出年、月、日。

输入样例:

cpp 复制代码
03-15-2017

输出样例:

cpp 复制代码
2017-03-15

代码长度限制

16 KB
时间限制

400 ms
内存限制

64 MB

参考代码

c 复制代码
#include<stdio.h>
int main()
{
    int year, month, day;
    scanf("%d-%d-%d", &month, &day, &year);
    printf("%d-%02d-%02d", year, month, day);
    return 0;
}

7-4 混合类型数据格式化输入(分数 10)

作者 乔林

单位 清华大学

本题要求编写程序,顺序读入浮点数1、整数、字符、浮点数2,再按照字符、整数、浮点数1、浮点数2的顺序输出。

输入格式:

输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。

输出格式:

在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。

输入样例:

cpp 复制代码
2.12 88 c 4.7

输出样例:

cpp 复制代码
c 88 2.12 4.70

代码长度限制

16 KB
时间限制

400 ms
内存限制

64 MB

参考代码

c 复制代码
#include <stdio.h>
int main()
{
    char c;
    int d;
    double f1, f2;
    scanf("%lf%d %c%lf", &f1, &d, &c, &f2);
    printf("%c %d %.2f %.2f", c, d, f1, f2);
    return 0;
}

7-5 然后是几点(分数 10)

作者 翁恺

单位 浙江大学

有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。

读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 530 分表示为 530030 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。

输入格式:

输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 530 分表示为 530030 分表示为 030。流逝的分钟数可能超过 60,也可能是负数。

输出格式:

输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。

输入样例:

cpp 复制代码
1120 110

输出样例:

cpp 复制代码
1310

鸣谢燕山大学穆运峰老师、用户任钰补充数据!

代码长度限制

16 KB
时间限制

400 ms
内存限制

64 MB

参考代码

c 复制代码
#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d%d", &a, &b);
    c = a/100*60+a%100;
    c = c+b;
    c = c/60*100+c%60;
    printf("%03d", c);
    return 0;
}

7-6 计算存款利息(分数 10)

作者 颜晖

单位 浙大城市学院

本题目要求计算存款利息,计算公式为 i n t e r e s t = m o n e y × ( 1 + r a t e ) y e a r − m o n e y interest=money×(1+rate)^{year} − money interest=money×(1+rate)year−money,其中 i n t e r e s t interest interest为存款到期时的利息(税前), m o n e y money money是存款金额, y e a r year year是存期, r a t e rate rate是年利率。

输入格式:

输入在一行中顺序给出三个正实数 m o n e y money money、 y e a r year year和 r a t e rate rate,以空格分隔。

输出格式:

在一行中按"interest = 利息"的格式输出,其中利息保留两位小数。

输入样例:

cpp 复制代码
1000 3 0.025

输出样例:

cpp 复制代码
interest = 76.89

代码长度限制

16 KB
时间限制

400 ms
内存限制

64 MB

参考代码

c 复制代码
# include<stdio.h>
# include<math.h>
int main()
{
    double interest, money, rate, year;
    scanf("%lf %lf %lf", &money, &year, &rate);
    interest = money*pow(1+rate,year)-money;
    printf("interest = %0.2lf", interest);
    return 0;
}

7-7 计算并联电阻的阻值(分数 10)

作者 吕曦

单位 武汉理工大学

对于阻值为r1和r2的电阻,其并联电阻阻值公式计算如下: R = 1/(1/r1 + 1/r2),编程计算并联电阻的阻值。

输入格式:

两个电阻阻值大小,实数,以一个空格分开。

输出格式:

并联之后的阻值大小,实数,保留小数点后两位。

输入样例:

cpp 复制代码
2 3

输出样例:

在这里给出相应的输出。例如:

cpp 复制代码
1.20

代码长度限制

16 KB
时间限制

400 ms
内存限制

64 MB

参考代码

c 复制代码
#include<stdio.h>
int main()
{
    double r1, r2, R;
    scanf("%lf %lf", &r1, &r2) ;
    R=1.0/(1.0/r1 + 1.0/r2);
    printf("%.2f", R);
    return 0;
}

7-8 每天进步一点点(分数 10)

作者 周永

单位 西南石油大学

1.01的365次方约等于37.78,意思是每天进步一点点,连续进步一年,进步的量非常可观。从键盘接收一个整数n ,假定输入的n一定在360到366之间(包含边界)。计算1.01的n次方,记为a;计算0.99的n次方,记为b。再计算a在b中占的百分比,就是用a乘以100后除以b。输出三个数据时,前两个数据保留两位小数 ,最后一个数据保留一位小数

输入格式:

输入一个整数,该整数一定在360到366之间。

输出格式:

两个小数和一个百分比数据,三者之间都用一个空格分开。

输入样例:

用户输入365后敲回车键,代表一年的天数。

cpp 复制代码
365

输出样例:

前两个数据保留两位小数,第三个数据保留一位小数且跟上了一个百分号,数据之间有且仅有一个空格。所谓保留是指四舍五入。

cpp 复制代码
37.78 0.03 148066.0%

代码长度限制

4 KB
时间限制

4000 ms
内存限制

100 MB

参考代码

c 复制代码
#include<stdio.h>
#include<math.h>
int main()
{
    double n, a=1.00, b=1.00;
    scanf("%lf", &n);
    a = pow((1.01), n);
    b = pow((0.99), n);
    printf("%.2lf %.2lf %.1lf%\n", a, b, a/b*100);
    return 0;
}
相关推荐
武昌库里写JAVA7 分钟前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计
ZSYP-S42 分钟前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring
yuanbenshidiaos1 小时前
c++------------------函数
开发语言·c++
yuanbenshidiaos1 小时前
C++----------函数的调用机制
java·c++·算法
唐叔在学习1 小时前
【唐叔学算法】第21天:超越比较-计数排序、桶排序与基数排序的Java实践及性能剖析
数据结构·算法·排序算法
程序员_三木1 小时前
Three.js入门-Raycaster鼠标拾取详解与应用
开发语言·javascript·计算机外设·webgl·three.js
是小崔啊1 小时前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
ALISHENGYA1 小时前
全国青少年信息学奥林匹克竞赛(信奥赛)备考实战之分支结构(switch语句)
数据结构·算法
tianmu_sama1 小时前
[Effective C++]条款38-39 复合和private继承
开发语言·c++
chengooooooo1 小时前
代码随想录训练营第二十七天| 贪心理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和
算法·leetcode·职场和发展