请提交两份材料
- 可在linux下编译运行的c程序源文件,linux命令行编译指令,以及参数使用说明。
- 代码思路的说明。可以使用文字、流程图、伪代码等各种方式,重点是把思路讲清楚。
- 实现一个英文单词记数程序。程序接受一个文件路径作为参数,统计并输出每个单词以及单词出现的次数。单词由连续的英文字母和数字组成,所有非字母数字的字符都认为是分隔符。
示范输出
a 10
count 3
word 5
人民币的硬币,具有1元,5角,5分,2分,1分这几种面值。假设一台自动售货机里面各种面值的硬币数量充足。请实现一个程序,计算顾客付款购货后应该怎么找钱。注意,找钱方案要求找给顾客的硬币数量最少。程序的输入是顾客付款金额和货品价格,程序应该输出具体的找钱方案。
下面的程序使用二维字符数组表示迷宫,'#'表示墙壁,'@'表示通路,'x'表示行走路径。迷宫四周是封闭的外墙,起点是maze[1][1]的位置(左上角),终点是maze[n-2][m-2](右下角)。请实现find_path函数,找到一条路径,并将每一步设置为'x'。
提示:这道题的得分有三个档次,能够找到一条路径可以拿到基本分数,能够找到最短路径可以拿到更高的分数,能够使用高效算法找到最短路径可以拿到最高档次的分数。此外,实现generate_maze函数,是一个加分项。
#include <stdio.h>
#include <stdlib.h>
void print_maze(char *maze, int row_size, int col_size)
{
int i;
int j;
char item;
for (i = 0; i < row_size; i++) {
for (j = 0; j < col_size; j++) {
item = *(maze + (i * col_size + j));
printf("%c", item);
}
printf("\n");
}
}
// 随机生成迷宫
char *generate_maze(int row_size, int col_size)
{
char *maze;
int i;
int j;
char *p_item;
maze = (char *) malloc(row_size * col_size * sizeof(char));
// TODO 随机生成迷宫
return maze;
}
void free_maze(char *maze)
{
free(maze);
}
// 搜寻路径,并使用'x'标识
void find_path(char *maze, int row_size, int col_size)
{
// TODO
}
int main(void)
{
// 示例迷宫
char maze[9][9] = {
{'#', '#', '#', '#', '#', '#', '#', '#', '#'},
{'#', '@', '#', '#', '@', '@', '@', '@', '#'},
{'#', '@', '@', '@', '@', '#', '#', '#', '#'},
{'#', '@', '#', '#', '@', '@', '@', '@', '#'},
{'#', '@', '@', '@', '#', '#', '#', '#', '#'},
{'#', '#', '#', '@', '@', '@', '@', '@', '#'},
{'#', '#', '#', '#', '#', '@', '#', '@', '#'},
{'#', '#', '#', '#', '#', '@', '#', '@', '#'},
{'#', '#', '#', '#', '#', '#', '#', '#', '#'}
};
print_maze(&maze[0][0], 9, 9);
return EXIT_SUCCESS;
}