------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1, 选择排序
思想:每次都把最小的一个拿到未排序的最前边
代码
//选择排序
void selectSort(intarr[],int len){
int temp;
for (inti=0; i<len-1; i++) {
for(int j=i+1; j<len; j++) {
if(arr[i]>arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
2, 折半查找
//折半查找
int halfSearch(intarr[],int len,int key){
intlow,high,mid;
low = 0;
high = len - 1;
while (low<=high) {
mid=(low+high)/2;
if(arr[mid]==key)
return mid;
elseif (key<arr[mid])
high = mid - 1;
else
low = mid +1;
}
return-1;
}
3, 二维数组
1) 定义及初始化
2) 定义时初始化可以省略第一维
3) 其他基本同一位数组
4, 用数组实现迷宫小游戏
#include <stdio.h>
#define ROW 9
#define COL 7
void printMap(char map[ROW][COL]){
//打印地图
for(inti=0;i<ROW;i++){
for(int j=0; j<COL; j++) {
printf("%c",map[i][j]);
}
printf("\n");
}
}
//小人移动
void prsonMove(char map[ROW][COL],intoldX,int oldY,intnewX,int newY){
char temp;
temp = map[oldX][oldY];
map[oldX][oldY] = map[newX][newY];
map[newX][newY] = temp;
}
int main(int argc, const char* argv[]) {
//定义变量
//1.定义变量,地图,小人位置,用户输入的方向
char direction;
char map[ROW][COL]={{'*','*','*','*','*','*','*'},
{'*','0','*',' ',' ',' ',' '},
{'*',' ','*','*','*',' ','*'},
{'*',' ',' ',' ','*',' ','*'},
{'*','*','*',' ','*',' ','*'},
{'*',' ',' ',' ','*',' ','*'},
{'*',' ','*','*','*',' ','*'},
{'*',' ',' ',' ',' ',' ','*'},
{'*','*','*','*','*','*','*'}};
int cuX=1;
int cuY=1;
//打印地图
printMap(map);
//提示玩法
printf("请输入方向:w.上s.下 a.左 d.右\n");
while (1){
//接收用户输入的方向
scanf("%c",&direction);
//接收回车
getchar();
switch (direction) {
//判断是否有路可走
case'w':
case'W':
if(map[cuX-1][cuY]!='*') {
personMove(map,cuX,cuY,cuX-1,cuY);
cuX--;
}
break;
case'a':
case'A':
if(map[cuX][cuY-1]!='*') {
personMove(map,cuX,cuY,cuX,cuY-1);
cuY--;
}
break;
case's':
case'S':
if(map[cuX+1][cuY]!='*') {
personMove(map,cuX,cuY,cuX+1,cuY);cuX++;
}
break;
case'd':
case'D':
if(map[cuX][cuY+1]!='*') {
personMove(map,cuX,cuY,cuX,cuY+1);
cuY++;
}
break;
}
//重绘地图
printMap(map);
//成功出来
if(cuY==COL-1) {
printf("你出来了!\n");
break;
}
}
return0;
}
5.字符串:位于双引号内的字符序列
1)在内存中以‘\0’结尾
2)C语言中没有字符串变量,只能用字符数组来存储字符串
6.字符数组
1)定义
2)初始化:基本普通数组一样
① 用来保存字符串时,char str[5]={“abcd”};
② charstr[5]=”abcd”;