• C语言|博客作业02


    这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/CST2020-1
    这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2020-1/homework/11452
    这个作业的目标 熟练for语句与if else语句,提升能力
    学号 20208957

    1、PTA实验作业
    1.1A除以B
    给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。
    1.1.1实验代码截图

    1.1.2数据处理
    数据表达
    1.变量A、B:变量为整型,由输入得来,指输入的数。
    数据处理
    2.表达式:关系表达式、算数表达式。
    流程结构:定义变量,赋值变量,else-if结构,输出结果。
    1.1.3PTA提交列表及说明

    Q1:求除法答案的计算方式有问题。
    A1:如果A、B都是整数类型,那么A/B的结果都是整数,所以只有A*1.0/B的结果才是浮点数类型,才符合题目要求。
    Q2:最后一个else后的括号条件。
    A2:最后一个条件即最后一种情况,则不需要再写。
    1.2比较大小
    本题要求将输入的任意3个整数从小到大输出。
    1.2.1实验代码截图

    1.2.2数据处理
    数据表达
    1.变量a、b、c:变量为整型,由输入得来,指输入的数。
    变量x、y:变量为整型,由赋值得来,用于比较大小。
    数据处理
    2.表达式:关系表达式,赋值表达式。
    流程结构:定义变量,赋值变量,if结构,输出结果。
    1.2.3PTA提交列表及说明

    Q1:大小比较错误。
    A1:需要借助两个新的变量x、y辅助abc来比较大小。
    Q2:赋值太多导致混乱编译错误。
    A2:现在草稿纸上把逻辑思路列出来,再写代码。
    1.3计算阶乘和
    对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。
    1.3.1实验代码截图

    1.3.2数据处理
    数据表达
    1.变量sum:变量为整型变量,由计算得来,用于求和。
    i、n、t:变量为整型变量,由赋值得来。
    数据处理
    2.表达式:赋值表达式、关系表达式、算数表达式。
    流程结构:定义变量,赋值变量,返回主函数,输出结果。
    1.3.3PTA提交列表及说明

    Q1:算不出正确的答案。
    A1:需要再定义一个函数,再返回主函数才能得出结果。
    2.阅读代码

    #include <stdio.h>
    #include <vector>
    #include <queue>
    #include <stack>
    #include <string>
    #include <set>
    #include <map>
    #include <algorithm>
    #include <cmath>
    #include <utility>
    #include <set>
    #include <functional>
    #include <string.h>
    #include <iostream>
    #include <numeric>
    #include <list>
    
    using namespace std;
    
    int main() {
    	int n, k;
    	scanf("%d %d", &n, &k);
    	vector<int> data(k);
    	for (int i = 0; i < k; ++i) {
    		scanf("%d", &data[i]);
    	}
    	int low = 1; 
    	int high = n + 1;
    	while (high - low > 1) {
    		int mid = (high + low) / 2;
    		int cols = 0;
    		for (int i = 0; i < k; ++i) {
    			cols += data[i] / mid;
    		}
    		if (cols >= n) {
    			low = mid;
    		} else {
    			high = mid;
    		}
    	}
    	printf("%d
    ", low);
    	for (int i = 0; i < k; ++i) {
    		for (int j = data[i] / low; j > 0; --j) {
    			if (n-- > 0) {
    				printf("%d
    ", i + 1);
    			} else {
    				break;
    			}
    		}
    	}
    }
    

    我选的是ACM题库中的一道题,他是日本一种新型的拼图游戏,这个代码引用了数十个文件用来定义函数,看起来很复杂,但是它实际上用了我们熟悉的两个循环语句,for、while语句,还有学完很久的if-else语句。全篇代码排版很清晰,易懂,没有平常代码的啰嗦,值得借鉴与学习。
    3.学习总结
    3.1学习进度条

    周/星期 这周所发的时间 代码行 学到的知识点简介 目前比较迷惑的问题
    10.19-10.25 九个小时 61 基础C语言知识输入输出函数
    10.26-11.1 十个小时 102 if-else语句 变量太多写的时候有点混乱
    11.2-11.8 十个小时 170 for循环语句 对语句的运用不是很灵活,想不清用哪种语句

    3.2累计代码行和博客字数


    3.3学习感悟
    最大的感悟就是光听课不行,在课后需要多实践多写代码,对语句的运用才能更加灵活更加熟练,完成作业的速度才能更快,而不是到现在还在赶作业

  • 相关阅读:
    维护电池检测上位机软件
    20192412 202120222 《网络与系统攻防技术》实验二实验报告
    20192412 202120222 《网络与系统攻防技术》实验三实验报告
    qps、并发数
    找最大字母
    常见的垃圾回收器和使用的场景
    2192. 有向无环图中一个节点的所有祖先
    reetrantlock和synchronize的区别
    flink两阶段提交
    kafka为什么适合大数据场景?
  • 原文地址:https://www.cnblogs.com/hujiayi/p/13943243.html
Copyright © 2020-2023  润新知