2022-2023-1 20221424 《计算机基础与程序设计》第6周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>(如2022-2023-1-计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(如2022-2023-1计算机基础与程序设计第一周作业) |
这个作业的目标 | Polya如何解决问题,简单类型与组合类型,复合数据结构,查找与排序算法,算法复杂度,递归,代码安全 |
作业正文 | https://www.cnblogs.com/Yu-Hongruojir/p/16773604.html |
教材学习内容总结
- How to solve it:理解问题,设计方案,执行方案,分析与回顾
- 算法的概念与简单设计
- 查找算法,排序算法,递归算法
- 信息隐藏,抽象,命名,测试思想
- 由关键词if、else、switch等为代表的条件控制语句
- 逻辑运算
教材学习中的问题和解决过程
- 问题:在很早以前,我尝试写过一元二次方程求根的程序,代码如下:
点击查看代码
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
printf("一元二次方程ax^2 + bx + c = 0求根计算器\n");
float a, b, c, x1, x2, x, m;
printf("请输入a:");
scanf(" %f", &a);
printf("请输入b:");
scanf("%f", &b);
printf("请输入c:");
scanf("%f", &c);
m = b * b - 4 * a * c;
if (a == 0 & b == 0)
{
printf("该式错误");
system; "pause";
}
else if (a == 0)
{
printf("此方程不是一元二次方程\n");
x = -c / b;
printf("计算中......\n");
printf("x = %f", x);
system; "pause";
}
else if(m < 0)
{
printf("方程无解\n");
system; "pause";
}
else
{
x1 = (- b + sqrt(m)) / (2 * a);
x2 = (- b - sqrt(m)) / (2 * a);
printf("计算中......\n");
printf("x1 = %f\n", x1);
printf("x2 = %f\n", x2);
}
return 0;
}
- 问题解决方案:通过观看带你学C带你飞相关视频得知,在C语言中,若一个式子成立,其输出结果为1。如果我在上面的程序中输入a=b=0,则“a= =0”输出为1,“b= =0”输出也为1。if语句的本质是括号里面的表达式输出1,则执行后面的语句。如果我代码是“&&”,则两个式子逻辑与输出仍然是1,即1&&1=1。而“&”符号其实是按位与,1&1=1。故代码能正常执行。(属于是歪打正着了)
代码调试中的问题和解决过程
-
问题:如图
-
问题解决方案:while语句后加了分号,加分号表示空语句。
上周考试错题总结
无错题
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第三周 | 200/385 | 3/7 | 13/45 | |
第四周 | 150/535 | 2/9 | 17/52 | |
第五周 | 170/705 | 2/11 | 15/67 | |
第六周 | 300/1005 | 6/17 | 20/87 |
-
计划学习时间:18小时
-
实际学习时间:20小时
-
改进情况:数组部分的作业有很大难度,我应该更加钻研。