作业3

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-3?page=4
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-3/homework/11454
这个作业的目标 熟练的掌握for语句的使用
学号 20209002
一、PTA实验作业。
1.1 求N分之一序列前N项和
题目内容描述:计算序列 1 + 1/2 + 1/3 + ... 的前N项之和,给出一个正整数N,在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后6位。

1.1.1实验代码截图

1.1.2数据处理
数据表达:运用了整型变量:N,i 浮点型变量:sum
数据处理:数据用到的表达式为初值表达式,条件表达式,流程结构为循环结构
1.1.3 PTA提交列表及说明

Q1:格式错误。
A1: = 的两边都要空格。
Q2:答案错误。
A2:输出语句要放在循环语句之外。
1.2 阶梯电价
题目内容描述:为了提倡居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦时;超过50千瓦时的,超出部分的用电量,电价上调0.05元/千瓦时。
1.2.1 实验代码截图

1.2.2 数据处理
数据表达:变量分别为整型变量elect和双精度浮点型变量cost,elect代表用户输入的用电量,cost代表电费。
数据处理:运用了if嵌入分支语句,涉及的计算表达式为电费=用电量0.52与电费=500.52+(用电量-50)*0.58。
1.2.3 PTA提交列表及说明

Q1:数学表达式错误
A1:仔细审题后。发现大于50的表达式中部分是0元/千瓦时
Q1:不清楚if的使用方法
A1:第一个if之前不用加else,之后的if前都要加else

****1.3生成3的乘方表 ****
输入一个非负整数n,生成一张3的乘方表,输出输30~3n的值,给出一个非负整数n,可调用幂函数计算3的乘方,按照幂的递增顺序输出n+1行,每行格式为“pow(3,i) = 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。
1.3.1 实验代码截图

1.3.2 数据处理
数据表达:整型变量n,i;双精度浮点型变量power
数据处理:初值表达式,条件表达式,步长表达式,结构为循环结构
1.3.3 PTA提交列表及说明

Q1:编译错误
A1:没有仔细审题导致输入错误
Q2:调用printf()函数输出结果的语句未放在for语句中导致调试只出现了一个结果。
A2:输出结果的语句未放入循环体结构中。
2.阅读代码

include

include

include

include

include

include

include

define N 500005

typedef long long LL;
using namespace std;
int n ;
LL X[N] , Y[N] , Z[N];
char str[55];

LL cal(LL k)
{
LL sum = 0 , x;
for (int i = 1 ; i <= n; ++ i)
{
if (k < X[i]) continue;
x = min(k , Y[i]);
sum += (x - X[i]) / Z[i] + 1;
}
return sum;
}

void work()
{
n = 1;
X[n] = 0;
sscanf(str , "%I64d %I64d %I64d" , &X[n] , &Y[n] , &Z[n]);
if (!X[n]) return;
memset(str , 0 , sizeof(str));
while (gets(str) , *str)
++ n , sscanf(str , "%I64d %I64d %I64d" , &X[n] , &Y[n] , &Z[n]) , memset(str , 0 , sizeof(str));
LL l = 1 , r = 1LL << 33 , m;
while (l < r)
{
m = (l + r) >> 1;
if (cal(m) & 1)
r = m;
else l = m + 1;
}
if (l == 1LL << 33)
puts("no corruption");
else printf("%I64d %I64d\n" , l , (cal(l) - cal(l - 1)));
}

int main()
{
while(gets(str))
work();
return 0;
}
1.C语言的使用相当广泛,即使不当程序员也定会接触到程序代码。
2.这让我对于程序的了解更加深刻了。
3.对一些变量与结构的印象加深了。
3.学习总结
3.1 学习进度条
3.3 学习感悟
1.要用心对待每一段代码,不可以忽视每一个小符号,理解好每一个语句所代表的含义加以运用;
2.在课前进行了预习的那一节内容,在上课时往往效率会更高
3.编写时必须仔细认真谨慎,所以这锻炼了我的能力,使我不像之前那样粗心了

posted @ 2020-11-08 11:59  IT小铠  阅读(77)  评论(0编辑  收藏  举报