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”);
// }
// 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”);
// }
// 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”;
// 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);
// // 声明字符串
// 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]);
// 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
*/
}**
// 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;
}**
相关文章推荐
- C语言第四天课堂笔记<详细+注释>
- C语言第三天课堂笔记<详细+注释>
- C语言第二天课堂笔记<详细+注释>
- C语言第一天课堂笔记<详细+注释>
- c/c++ strspn / strstr / strchr
- C++模式(三)模板方法模式
- C++—特殊成员函数
- 由C++构造函数初始值列表想到的
- C++编程经验-返回局部变量的讨论
- c++primer第五版第十二章12.20习题用一个StrBlobPtr打印出StrBlob中的元素
- 操作系统中轮转法的模拟
- c++从入门到实践
- 题目1.2.4 The Seven Percent Solution(C++)
- Rational Rose 2003 逆向工程转换C++源代码成UML类图
- C语言学习——怪异的事情
- 在C语言中利用PCRE实现正则表达式
- 【c语言】 编写一个函数reverse_string(char * string)(递归实现)
- C++单链表实现冒泡排序
- C++中实数(以float为例)的存储方式
- C++链表翻转