This is a test.

这是一个关于markdown语法的测试

字体示例

粗体字
斜体字
又粗又斜
这是被删掉的字

引用示例

本文引用自xxxxx

多级引用示例

换行示例


图片示例

fgo图片

超链接示例

这是一个测试超链接

这是另外一个超链接

接下来是列表

无序列表

  • 列表1
  • 列表2
  • 列表3

有序列表

  1. list one
  2. list two
  3. list three

列表嵌套

  • 一级列表(无序)
    • 二级列表(无序)
  • 一级列表2
    • 二级列表1
    • 二级列表2
    • 二级列表3

表格

姓名 身份 排行
szl 巨佬 1
zch 巨佬 1
菜鸡 1145141919810

代码

单行代码

public static void main(String args[]);

多行代码

本代码摘自本人程序设计II第六周递归和栈作业的第二题
写的真工整(划掉)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include <stdio.h>
#include <stdlib.h>
#include <iostream>

int RecursionTime = 0;

using namespace std;

struct FileInfo
{
/*
* It contains a pointer to sub-dirs, and a string array to files.
* Also a name for dir, two int variable records the number of Dirs and Files.
*/
FileInfo *Dir[100];
string File[100];
string _name;
int nDirNum;
int nFileNum;
};

void _sort(string sString[], int slength)
{
/*
* make the array in dictionary order.
*/
for(int i = 0; i <= slength - 1; i++)
{
for(int j = i; j <= slength - 1; j++)
{
if(sString[i] > sString[j])
{
string temp;
temp = sString[i];
sString[i] = sString[j];
sString[j] = temp;
}
}
}
return;
}

void __sort(FileInfo *fileinfo)
{
/*
* make files in fileinfo in dictionary order.
*/
_sort(fileinfo->File, fileinfo->nFileNum);
return;
}

bool Read(FileInfo *dir)
{
/*
* This function reads the text from cmd and put the infomation into a tree dir.
*
* When there is another group of data, it returns true to continue.
* If not, it return false to end the program.
*/

string name;
int num1 = 0,num2 = 0;
while(1)
{
/* scanf("%s", name);*/ cin>>name;
switch(name[0])
{
case 'f':
dir->File[num1++] = name;
break;
case 'd':
dir->Dir[num2++] = new FileInfo;
dir->Dir[num2 - 1]->_name = name;
Read(dir->Dir[num2 - 1]);
break;
case ']':
dir->nDirNum = num2;
dir->nFileNum = num1;
__sort(dir);
return true;//When ended,sort dir and put num1 and num2 to dir as the num of files and dirs.
case '*':
dir->nDirNum = num2;
dir->nFileNum = num1;
__sort(dir);
return true;
case '#':
return false;
}
}
}

void Write(FileInfo *fileinfo, int nRecurTime)
{
/*
* Dealing with the data from fileinfo.
* dir and file output separately.
*/


for(int i = 0; i < fileinfo->nDirNum; i++)
{
for(int j = 0; j <= nRecurTime; j++)
{
printf("| ");
}
printf("%s", fileinfo->Dir[i]->_name.c_str());
putchar('\n');
Write(fileinfo->Dir[i], nRecurTime + 1);
}
for(int i = 0; i < fileinfo->nFileNum; i++)
{
for(int j = 0; j < nRecurTime; j++)
{
printf("| ");
}
printf("%s", fileinfo->File[i].c_str());
putchar('\n');
}
delete fileinfo;
return;
}

int main(void)
{
//Set of Data
int num = 1;

//input and output
while(true)
{
FileInfo *fileinfo = new FileInfo;
fileinfo->_name = "ROOT";
if(Read(fileinfo))//When read #, return false and then exit.
{
printf("DATA SET %d:", num++);
putchar('\n');
printf("ROOT");
putchar('\n');
Write(fileinfo, 0);
putchar('\n');
}
else
{
putchar('\n');
return 0;
}

}
// fclose(stdin);
// fclose(stdout);
}

大概就这么多内容,先全记住语法再说。