您的位置:首页 > 编程语言 > C语言/C++

C语言第五天课堂笔记<详细+注释>

2015-11-10 21:09 453 查看
**// 需求: 定义一个三行四列的二位数组

// int array[3][4] = {

// {1, 6, 112, 15 },

// {12, 17, 18, 22},

// {14, 11, 16, 12}};

// // 访问二位数组中的元素

// printf(“%d “,array[1][2]);

// printf(“%d “,array[2][1]);

// // 改变其中的一个值,赋值

// array[1][3] = 33;

// printf(“%d “,array[1][3]);

// // 声明一个4列五行整形二位数组 并且随机赋值[20, 100]之间的数;

// int array1[4][5] = {0};

// for (int i = 0; i < 4; i++) {

// for (int j = 0; j < 5; j++) {

// array1[i][j] = arc4random() % 81 + 20;

// printf(“%d “,array1[i][j]);

//

// }

// printf(“\n”);

// }

// printf(“\n”);

// for (int i = 0; i < 4; i++) {

// for (int j = 0; j < 5; j++) {

// printf(“%d “,array1[i][j]);

// }

// printf(“\n”);

// }

// 先随机赋值[10, 50]的数 ,再将一个3行6列二位数组的行和列交换后存储到另一个二位数组


// int Rows = 0;

// int Columns = 0;

// int a[100][100] = {0};

// int b[100][100] = {0};

// printf(“请输入二维数组的行数和列数:”);

// scanf(“%d%d”,&Rows,&Columns);

// for (int i = 0; i < Rows; i++) {

// for (int j = 0; j < Columns; j++) {

// a[i][j] = arc4random() % 41 +10;

// printf(“%d “,a[i][j]);

// }

// printf(“\n”);

// }

// for (int i = 0; i < Columns; i++) {

// for (int j = 0; j < Rows; j++) {

// b[i][j] = a[j][i];

// printf(“%d “,b[i][j]);

// }

// printf(“\n”);

// }

// 有一个3行4列的二维数组 要求编程找出最大元素,并输出所在的行和列
// 定义最小值 注意给初值 最好给数组中的一个数 或者给定大于数组中最大值的一个数


// int a[3][4] = {0},PositionRow = 0,PositionColumn = 0,

// MaxValue = 0,MinValue = 0;

// for (int i = 0; i < 3; i++) {

// for (int j = 0; j < 4; j++) {

// a[i][j] = arc4random() % 41 + 10;

// printf(“%d “,a[i][j]);

// if (MaxValue < a[i][j]) {

// MaxValue = a[i][j];

// PositionRow = i;

// PositionColumn = j;

// }

//

// }

// printf(“\n”);

// }

// printf(“最大元素是:%d”,MaxValue);

// printf(“\n它所在的行和列分别是:%d %d”,PositionRow + 1,PositionColumn + 1);

//

// // 定义最小值 注意给初值 最好给数组中的一个数 或者给定大于数组中最大值的一个数

// MinValue = a[0][0];

// for (int i = 0; i < 3; i++) {

// for (int j = 0; j < 4; j++) {

// if (MinValue > a[i][j]) {

// MinValue = a[i][j];

// PositionRow = i;

// PositionColumn = j;

// }

//

// }

// }

// printf(“\n最小元素是:%d”,MinValue);

// printf(“\n它所在的行和列分别是:%d %d”,PositionRow + 1,PositionColumn + 1);

// 字符串数组


// char str1[] = {‘i’, ‘p’, ‘h’}; // 字符数组

// char str2[] = “iph”;

//  这个字符串数组 保存了三个字符串且每个字符串长度是20个字符
//  注意:声明时 第二维下标代表每个字符串的长度 切记不要越界


// char str3[3][20] = {“wanglong”, “wuyuchen”, “zhuangyong”};

//

// // 取出字符串数组中 某一个字符串

// // 用一维下标取出整个字符串 从0开始

//// printf(“%s”,str3[1]);

////

// // 取出字符串数组中 单个字符

// printf(“%c”,str3[1][2]);

// printf(“\n%c”,str3[2][7]);

//

// // 赋值字符串

// // 字符串在进行赋值的时候需要使用字符串拷贝

// strcpy(str3[0], “lutaotao”);

// printf(“\n%s”,str3[0]);

//

// 1、创建⼀个字符串数组(内容是你周围⼀圈⼈的姓名),输出最⻓字符串的⻓度。

// char str[7][20] = {

// “liuhang”,

// “qiaodi”,

// “matingting”,

// “yangbingqi”,

// “zangjie”,

// “mazegong”,

// “lutaotao”

// };

// // 定义一个最大行数

// int max = (int)strlen(str[0]);

// // 定义一个最大值的位置

// int maxposition = 0;

// for (int i = 1; i < 7; i++) {

// if (max < strlen(str[i]))

// {

// max = (int)strlen(str[i]);

// maxposition = i;

// }

// }

// printf(“%s”,str[maxposition]);

// printf(“\n%d”,max);

//  2、创建⼀个字符串数组(内容是你周围⼀圈⼈的姓名),对字符串(英⽂)从⼩到⼤排序。
/**
*  思路:
1.声明字符串
2.冒泡排序
3.字符串比较
4.字符串的交换
5.打印结果

*/


// // 声明字符串

// char str[7][20] = {

// “liuhang”,

// “qiaodi”,

// “matingting”,

// “yangbingqi”,

// “zangjie”,

// “mazegong”,

// “lutaotao”

// };

//

// // 冒泡排序

// for (int i = 0; i < 6; i++) {

// for (int j = 0; j < 6 - i; j++) {

// // 字符串比较

// if (strcmp(str[j], str[j + 1]) > 0){

// // 字符串交换

// char temp[20] = {0};

// strcpy(temp, str[j]);

// strcpy(str[j], str[j + 1]);

// strcpy(str[j + 1], temp);

//

// }

//

//

// }

// }

// // 打印结果

// for (int i = 0; i < 7; i++) {

// printf(“%s\n”,str[i]);

// }

//

// // 声明一个两层三行四列的整形数组

// int array[2][3][4] = {

// {

// {10, 11, 12, 13},

// {45, 14, 8, 22},

// {47, 78, 99, 55},

// },

// {

// {17, 48, 48, 212},

// {15, 15, 84, 99},

// {77, 55, 66, 44},

// }

// };

//

// // 打印其中一个元素

// printf(“%d “,array[1][1][2]);

// printf(“%d “,array[1][2][1]);

//

// // 赋值三维数组中的元素

// array[1][2][1] = 42;

// printf(“%d “,array[1][2][1]);

//   需求: 声明一个三维数组 3层5行3列 随机赋值 [50-100]之间
/**
*  思路: 1.声明一个三维数组
2.遍历三维数组
3.产生随机数赋值
4.注意换行问题
*/


// int a[3][5][3] = {0};

// for (int i = 0; i < 3 ; i++) {

// for (int j = 0; j < 5; j++) {

// for (int k = 0; k < 3; k++) {

// a[i][j][k] = arc4random() % 51 + 50;

// printf(“%d “,a[i][j][k]);

// }

// printf(“\n”);

// }

// printf(“\n”);

// }

//

// 三维数组计算元素个数 下标相乘

//

/**

* 定义数组是可以不给第一维的个数

// 但是有三种情况

1.初值不够一行时 系统自动补齐一行,补0

2.初值刚刚够一行时 啥也不补

3.初值超过1行不足2行时 自动补齐第二行 补0

*/

//   用二维数组写一个简单的迷宫地图
/**
*  思路:
1.定义一个字符型的二维数组,明确大小
*/
char map[10][10] =
{
{'#','#','#','#','#','#','#','#','#','#'},//0
{'#','0',' ',' ',' ','#',' ','#',' ',' '},//1
{'#','#',' ','#','#','#',' ','#',' ','#'},//2
{'#','#',' ',' ',' ',' ',' ','#',' ','#'},//3
{'#','#','#',' ','#','#',' ','#',' ','#'},//4
{'#',' ','#',' ',' ','#',' ','#',' ','#'},//5
{'#',' ','#',' ',' ','#',' ','#',' ','#'},//6
{'#',' ','#',' ',' ','#',' ','#',' ','#'},//7
{'#',' ',' ',' ',' ','#',' ',' ',' ','#'},//8
{'#','#','#','#','#','#','#','#','#','#'},//9
//0   1   2   3   4   5   6   7   8   9
};
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
printf("%c",map[i][j]);
}
printf("\n");
}
int a = 1;
int b = 1;
printf(" w 向上 s 向下 a 向左 d 向右\n");
printf("\n请输入方向:");
while(map[1][9] != '0'){
char direction = 0;
scanf("%c",&direction);
if (direction == 'w') {
if (map[a - 1][b] != '#') {
char temp = map[a][b];
map[a][b] = map[a - 1][b];
map[a - 1][b] = temp;
//  记录新的a,b
a = a - 1;

}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
printf("%c",map[i][j]);
}
printf("\n");
}
printf("\n请输入方向:");
}
else if(direction == 's')
{
if (map[a + 1][b] != '#') {
char temp = map[a][b];
map[a][b] = map[a + 1][b];
map[a + 1][b] = temp;
a = a + 1;

}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
printf("%c",map[i][j]);
}
printf("\n");
}
printf("\n请输入方向:");
}
else if (direction == 'a')
{
if (map[a][b - 1] != '#') {
char temp = map[a][b];
map[a][b] = map[a][b - 1];
map[a][b - 1] = temp;
b =  b - 1;

}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
printf("%c",map[i][j]);
}
printf("\n");
}
printf("\n请输入方向:");
}
else if(direction == 'd')
{
if (map[a][b + 1] != '#') {
char temp = map[a][b + 1];
map[a][b + 1] = map[a][b];
map[a][b] = temp;
b = b + 1;

}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
printf("%c",map[i][j]);
}
printf("\n");
}
printf("\n请输入方向:");
}

}
printf("你太牛逼了....");

return 0;


}**
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: