Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e78bd45

Browse files
update
1 parent 82ad6da commit e78bd45

33 files changed

+322
-390
lines changed
Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,51 @@
1-
# 课程大纲
1+
# 计算导论与C语言基础
22

3-
## week01
3+
## 课程介绍
44

5-
计算机基础原理
5+
这是北京大学在Coursera上开设程序设计与算法专项课程的第一门课,讲师是李戈老师,讲课幽默风趣。个人认为这算是一个不错的程序设计入门课,老师自己发明了一套"从感兴认识程序到理性认识程序"的学习方法。
66

7-
## week02
7+
相比授课,更加重要的是本课程提供的习题,这些习题都是从北大学生的作业里提炼出来的,由于是网课,数量自然少很多,但质量并不低。此外还提供了题目在POJ的链接,所有习题都可以先在POJ尝试提交,获得一个及时反馈。
88

9-
计算机历史及其发展趋势
9+
总的来说这门课还是比较基础,真的安排12周学完的话太长了,建议最好在一个月内完成吧。
1010

11-
## week03
1211

13-
程序运行的基本原理
12+
13+
## 课程主要内容
1414

1515
> 前三章都是计算机的一些概论性质的内容,不是特别重要。week4开始就有编程作业了
1616
17-
## week04
17+
week01:计算机基础原理
18+
19+
week02:计算机历史及其发展趋势
20+
21+
week03:程序运行的基本原理
22+
23+
week04:编程基本概念(变量、控制流等等)
24+
25+
week05:结构化程序设计,用样例介绍如何把现实问题抽象成程序问题
26+
27+
week06:C语言发展历史,程序设计语言构成
28+
29+
week07:数据类型
30+
31+
week08:运算符
32+
33+
week09:分支与循环语句
1834

19-
编程基本概念(变量、控制流等等)
35+
week10:数组
2036

21-
## week05
37+
week11:字符串
2238

23-
结构化程序设计,用样例介绍如何把现实问题抽象成程序问题
39+
week12:期末测试
2440

25-
## week06
41+
除了个别周外,每周都有课后习题。
2642

27-
C语言发展历史
2843

29-
程序设计语言构成
3044

31-
## week07
45+
## 习题集
3246

33-
数据类型
47+
课程中有一些编程练习题,基于这门课的知识只能用比较"笨"的方法去实现,但实际上是一些很经典的算法题目,特地整理在这里,方便以后学算法的时候进行回顾。
3448

49+
- week07_03:找出第k大的数
50+
- week08_05:找和为k的两个数
51+
-

‎1.计算导论与C语言基础/week07/成绩判断.cpp renamed to ‎1.计算导论与C语言基础/week07/02_成绩判断.cpp

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,3 @@
1-
/*
2-
成绩判断
3-
4-
描述
5-
6-
输入一个0--100的分数,判断分数代表什么等级。
7-
8-
95<=分数<=100, 输出1
9-
10-
90<=分数<95,输出2
11-
12-
85<=分数<90,输出3
13-
14-
80<=分数<85,输出4
15-
16-
70<=分数<80,输出5
17-
18-
60<=分数<70输出6
19-
20-
分数 < 60;输出7.
21-
22-
输入
23-
24-
n
25-
26-
输出
27-
28-
m
29-
30-
样例
31-
*/
32-
331
#include <iostream>
342
using namespace std;
353

‎1.计算导论与C语言基础/week07/找出第k大的数.cpp renamed to ‎1.计算导论与C语言基础/week07/03_找出第k大的数.cpp

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,3 @@
1-
/*
2-
找出第k大的数
3-
4-
描述
5-
6-
用户输入N和K,然后接着输入N个正整数(无序的),程序在不对N个整数排序的情况下,找出第K大的数。注意,第K大的数意味着从大到小排在第K位的数。
7-
8-
输入
9-
10-
N
11-
12-
K
13-
14-
a1 a2 a3 a4 ..... aN
15-
16-
输出
17-
18-
b
19-
*/
20-
211
#include <iostream>
222
using namespace std;
233

@@ -29,9 +9,7 @@ int main()
299
int *a = new int[n];
3010

3111
for (int i = 0; i < n; i++)
32-
{
3312
cin >> a[i];
34-
}
3513

3614
for (int i = 0; i < n; i++)
3715
{

‎1.计算导论与C语言基础/week07/人民币支付.cpp renamed to ‎1.计算导论与C语言基础/week07/04_人民币支付.cpp

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
/*
2-
人民币支付
3-
4-
描述
5-
6-
从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。
7-
8-
输入
9-
10-
一个小于1000的正整数。
11-
12-
输出
13-
14-
输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数
15-
*/
16-
171
#include <iostream>
182
using namespace std;
193

‎1.计算导论与C语言基础/week07/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ PS:分子和分母都没有为0的情况,也没有出现负数的情况
135135

136136
每个冒号之后有一个空格。
137137

138-
输出可以用 cout<<fixed<<setprecision(2) << f; 来保留f后面的两位小数。
138+
输出可以用 `cout<<fixed<<setprecision(2) << f;` 来保留f后面的两位小数。
139139

140140

141141

@@ -227,9 +227,9 @@ b
227227

228228
### 解题思路
229229

230-
一开始还想着不排序岂不是很复杂?其实只要遍历每个数,求出比他大的个数,如果为k-1个,那么这个数就是第k大的数。但这个方法效率非常低。
231-
230+
我用了最简单,也是效率最低的方法,遍历每个数,求出比他大的个数,如果为k-1个,那么这个数就是第k大的数。
232231

232+
网上也有利用算法知识解决的,快速排序等等,因为还没学到这部分内容先跳过。
233233

234234
## 编程题#4:人民币支付
235235

File renamed without changes.

‎1.计算导论与C语言基础/week08/点评赛车.cpp renamed to ‎1.计算导论与C语言基础/week08/00_点评赛车.cpp

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,3 @@
1-
/*
2-
点评赛车
3-
4-
描述
5-
6-
4名专家对4款赛车进行评论
7-
8-
1)A说:2号赛车是最好的;
9-
10-
2)B说:4号赛车是最好的;
11-
12-
3)C说:3号赛车不是最好的;
13-
14-
4)D说: B说错了。
15-
16-
事实上只有1款赛车最佳,且只有1名专家说对了,其他3人都说错了。
17-
18-
请编程输出最佳车的车号,以及说对的专家。
19-
20-
输入
21-
22-
无输入。
23-
24-
输出
25-
26-
输出两行。第一行输出最佳车的车号(1-4中的某个数字)。第二行输出说对的专家(A-D中的某个字母)。
27-
*/
28-
291
#include <iostream>
302
using namespace std;
313

@@ -42,21 +14,13 @@ int main()
4214
{
4315
cout << best << endl;
4416
if (a)
45-
{
4617
cout << "A" << endl;
47-
}
4818
else if (b)
49-
{
5019
cout << "B" << endl;
51-
}
5220
else if (c)
53-
{
5421
cout << "C" << endl;
55-
}
5622
else if (d)
57-
{
5823
cout << "D" << endl;
59-
}
6024
}
6125
}
6226
return 0;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include <iostream>
2+
using namespace std;
3+
4+
int main()
5+
{
6+
int a = 0;
7+
int input = 0;
8+
int sum = 0;
9+
10+
cin >> a;
11+
for (int i = 0; i < 5; i++)
12+
{
13+
cin >> input;
14+
if (input < a)
15+
sum += input;
16+
}
17+
18+
cout << sum << endl;
19+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#include <iostream>
2+
using namespace std;
3+
4+
int main()
5+
{
6+
int n = 0;
7+
cin >> n;
8+
9+
10+
while (n--)
11+
{
12+
float dist = 0;
13+
cin >> dist;
14+
if ((dist / 3 + 50) < (dist / 1.2f))
15+
{
16+
cout << "Bike" << endl;
17+
}
18+
else if (((dist / 3 + 50) > (dist / 1.2f)))
19+
{
20+
cout << "Walk" << endl;
21+
}
22+
else
23+
{
24+
cout << "All" << endl;
25+
}
26+
}
27+
return 0;
28+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#include <iostream>
2+
using namespace std;
3+
4+
int main()
5+
{
6+
int N = 0, K = 0;
7+
while (cin >> N >> K)
8+
{
9+
int money = N;
10+
float price = 200;
11+
bool canBuy = false;
12+
for (int i = 1; i <= 20; i++)
13+
{
14+
if (money >= price)
15+
{
16+
cout << i << endl;
17+
canBuy = true;
18+
break;
19+
}
20+
money += N;
21+
price *= (1 + K / 100.0);
22+
}
23+
if (!canBuy)
24+
{
25+
cout << "Impossible" << endl;
26+
}
27+
}
28+
return 0;
29+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /