Skip to content

Commit a2e0dab

Browse files
committed
update
1 parent 104ce66 commit a2e0dab

File tree

10 files changed

+536
-7
lines changed

10 files changed

+536
-7
lines changed
+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#include<iostream>
2+
#include<stdio.h>
3+
using namespace std;
4+
5+
int main()
6+
{
7+
char a[101][101];
8+
int n, m, sum = 0;
9+
cin >> n;
10+
for(int i = 0;i < n; i++)
11+
{
12+
for(int j = 0; j < n; j++)
13+
{
14+
cin >> a[i][j];
15+
}
16+
}
17+
cin >> m;
18+
for(int d = 1; d <= m; d++)
19+
{
20+
for(int i = 0; i < n; i++)
21+
{
22+
for(int j = 0; j < n;j++)
23+
{
24+
if(a[i][j] == '!')
25+
a[i][j] = '@'; // 将前一天标记的人感染
26+
}
27+
}
28+
for(int i = 0; i < n; i++)
29+
{
30+
for(int j = 0; j < n;j++)
31+
{
32+
// 将感染人周围的人标记
33+
if(a[i][j] == '@')
34+
{
35+
if(i + 1 <n && a[i + 1][j] == '.')
36+
a[i + 1][j]='!';
37+
if(j - 1 >= 0 && a[i][j - 1] == '.')
38+
a[i][j - 1] = '!';
39+
if(j + 1 < n && a[i][j + 1] == '.')
40+
a[i][j + 1]='!';
41+
if(i - 1 >= 0 && a[i - 1][j] == '.')
42+
a[i - 1][j] = '!';
43+
}
44+
}
45+
}
46+
47+
}
48+
for(int i = 0; i < n; i++)
49+
{
50+
for(int j = 0; j < n; j++)
51+
{
52+
if(a[i][j] == '@')
53+
sum++;
54+
}
55+
}
56+
cout << sum << endl;
57+
return 0;
58+
}

C程序设计进阶/week2/作业/流感传染.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@
3535
#include <iostream>
3636
using namespace std;
3737

38-
void update(int n, char a[101][101]);
38+
void update(int n, char a[100][100]);
3939

4040
int main()
4141
{
4242
int n = 0;
4343
cin >> n;
44-
char a[101][101];
44+
char a[100][100];
4545
for (int i = 0; i < n; i++)
4646
{
4747
for (int j = 0; j < n; j++)
@@ -73,9 +73,9 @@ int main()
7373
return 0;
7474
}
7575

76-
void update(int n, char a[101][101])
76+
void update(int n, char a[100][100])
7777
{
78-
char newA[101][101];
78+
char newA[100][100];
7979
for (int i = 0; i < n; i++)
8080
{
8181
for (int j = 0; j < n; j++)
@@ -84,9 +84,9 @@ void update(int n, char a[101][101])
8484
if (a[i][j] == '.')
8585
{
8686
if ((a[i][j - 1] == '@' && j - 1 >= 0) ||
87-
(a[i][j + 1] == '@' && j + 1 <= n) ||
87+
(a[i][j + 1] == '@' && j + 1 < n) ||
8888
(a[i - 1][j] == '@' && i - 1 >= 0) ||
89-
(a[i + 1][j] == '@' && i + 1 <= n))
89+
(a[i + 1][j] == '@' && i + 1 < n))
9090
{
9191
newA[i][j] = '@';
9292
}
@@ -101,4 +101,4 @@ void update(int n, char a[101][101])
101101
a[i][j] = newA[i][j];
102102
}
103103
}
104-
}
104+
}
+156
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
## 编程题#1:单词翻转
2+
3+
[来源: POJ](http://pkuic.openjudge.cn/hw07/1/) (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
4+
5+
**注意: 总时间限制: 1000ms 内存限制: 65536kB**
6+
7+
### 描述
8+
9+
输入一个句子(一行),将句子中的每一个单词翻转后输出。
10+
11+
### 输入
12+
13+
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。所谓单词指的是**所有**不包含空格的连续的字符。
14+
15+
这道题请用cin.getline输入一行后再逐个单词递归处理。
16+
17+
### 输出
18+
19+
翻转每一个单词后的字符串,**单词之间的空格需与原文一致**
20+
21+
### 样例输入
22+
23+
```
24+
hello world.
25+
```
26+
27+
### 样例输出
28+
29+
```
30+
olleh .dlrow
31+
```
32+
33+
## 编程题#2:角谷猜想
34+
35+
[来源: POJ ](http://pkuic.openjudge.cn/hw07/2)(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
36+
37+
**注意: 总时间限制: 1000ms 内存限制: 65536kB**
38+
39+
### 描述
40+
41+
所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。
42+
43+
程序要求输入一个整数,将经过处理得到1的过程输出来。
44+
45+
### 输入
46+
47+
一个正整数
48+
49+
### 输出
50+
51+
从输入整数到1的步骤,每一步为一行,每一部中描述计算过程,假定输入为7,则输出为:
52+
53+
7*3+1=22
54+
55+
22/2=11
56+
57+
11*3+1=34
58+
59+
34/2=17
60+
61+
17*3+1=52
62+
63+
52/2=26
64+
65+
26/2=13
66+
67+
13*3+1=40
68+
69+
40/2=20
70+
71+
20/2=10
72+
73+
10/2=5
74+
75+
5*3+1=16
76+
77+
16/2=8
78+
79+
8/2=4
80+
81+
4/2=2
82+
83+
2/2=1
84+
85+
最后一行输出"End",如果输入为1,直接输出"End"
86+
87+
### 样例输入
88+
89+
```
90+
1
91+
92+
93+
94+
95+
96+
97+
98+
99+
5
100+
101+
102+
103+
104+
105+
106+
```
107+
108+
### 样例输出
109+
110+
```
111+
5*3+1=16
112+
16/2=8
113+
8/2=4
114+
4/2=2
115+
2/2=1
116+
End
117+
```
118+
119+
120+
121+
## 编程题#3:排队游戏
122+
123+
[来源: POJ](http://pkuic.openjudge.cn/hw07/3) (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
124+
125+
**注意: 总时间限制: 1000ms 内存限制: 65536kB**
126+
127+
### 描述
128+
129+
在幼儿园中,老师安排小朋友做一个排队的游戏。首先老师精心的把数目相同的小男孩和小女孩编排在一个队列中,每个小孩按其在队列中的位置发给一个编号(编 号从0开始)。然后老师告诉小朋友们,站在前边的小男孩可以和他后边相邻的小女孩手拉手离开队列,剩余的小朋友重新站拢,再按前后相邻的小男孩小女孩手拉 手离开队列游戏,如此往复。由于教师精心的安排,恰好可以保证每两个小朋友都能手拉手离开队列,并且最后离开的两个小朋友是编号最小的和最大的两个小朋 友。(注:只有小男孩在前,小女孩在后,且他们两之间没有其他的小朋友,他们才能手拉手离开队列)。请根据老师的排队,按小女孩编号从小到大的顺序,给出 所有手拉手离开队列的小男孩和小女孩的编号对。
130+
131+
### 输入
132+
133+
用一个字符串代表小朋友队列。字符串中只会出现两个字符(样例输入里用的是 括号但实际数据则不一定),分别代表小男孩和小女孩,首先出现的字符代表小男孩,另一个字符代表小女孩。小孩总数不超过100
134+
135+
### 输出
136+
137+
按小女孩编号顺序,顺序输出手拉手离开队列的小男孩和小女孩的编号对,每行一对编号,编号之间用一个空格分隔。
138+
139+
### 样例输入
140+
141+
```
142+
((()(())())(()))
143+
```
144+
145+
### 样例输出
146+
147+
```
148+
2 3
149+
5 6
150+
4 7
151+
8 9
152+
1 10
153+
12 13
154+
11 14
155+
0 15
156+
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
/*
2+
编程题#1:单词翻转
3+
4+
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
5+
6+
注意: 总时间限制: 1000ms 内存限制: 65536kB
7+
8+
描述
9+
10+
输入一个句子(一行),将句子中的每一个单词翻转后输出。
11+
12+
输入
13+
14+
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。所谓单词指的是所有不包含空格的连续的字符。
15+
16+
这道题请用cin.getline输入一行后再逐个单词递归处理。
17+
18+
输出
19+
20+
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
21+
22+
样例输入
23+
1
24+
hello world.
25+
26+
样例输出
27+
1
28+
olleh .dlrow
29+
30+
*/
31+
32+
#include <iostream>
33+
using namespace std;
34+
35+
void revertWord(char str[], int start, int end);
36+
void revert(char str[], int start);
37+
38+
int main()
39+
{
40+
char str[500];
41+
cin.getline(str, 500);
42+
revert(str, 0);
43+
cout << str << endl;
44+
return 0;
45+
46+
}
47+
48+
void revertWord(char str[], int start, int end)
49+
{
50+
for (int i = start, j = end; i < j; i++, j--)
51+
{
52+
char tmp = str[i];
53+
str[i] = str[j];
54+
str[j] = tmp;
55+
}
56+
}
57+
58+
void revert(char str[], int start)
59+
{
60+
while (str[start] == ' ')
61+
{
62+
start++;
63+
}
64+
if (str[start] == '\0')
65+
{
66+
return;
67+
}
68+
int end = start;
69+
while (str[end] != ' ' && str[end] != '\0')
70+
{
71+
end++;
72+
}
73+
revertWord(str, start, end - 1);
74+
revert(str, end);
75+
}

0 commit comments

Comments
 (0)