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

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

2015-11-10 21:08 459 查看
**// 数组定义:保存同种数据类型的多个数据

//  声明一个数组 保存年龄
//
n 代表数组中元素的个数
//  {} 中值 是数据中元素的初值 用逗号隔开
//  int  表示数组中每一个元素的数据类型
// 声明数组的公式 数据类型 数组名[常量表达式] = {初值1, 初值2...., 初值(常量表达式)};


// int ageArray[3] = {27, 19, 22};

// 数组元素个数可以用变量来表示,但是不可以进行初始化
// int count = 5;
// int array[count] = {1, 3, 5, 7, 9};是错误的

// 输入声明数组是 数组元素的个数 大于 给出的数组的元素初值的个数 系统会自动补0


// int array2[5] = {2, 5, 7};

// 相当于int array3[5] = {0, 0, 0, 0, 0};


// int array3[5] = {0};

// 声明的时候没有给定元素个数 那么初值有几个元素 这个数组就有几个元素


// int array4[] = {1, 4, 6, 7, 9};

// 声明一个字符类型的数组


// char str[10] = {‘i’, ‘p’, ‘h’, ‘o’, ‘n’, ‘e’};

// 字符串

// char str1[10] = “iphone”;

//

// for( int i = 0; i < 10; i++)

// {

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

// printf(“%c\n”,str1[i]);

// }

//

// 取出数组中的元素

// 使用数组名[下标] 切记:下标从0开始

//

// int array[6] = {27, 19, 22, 26 ,23, 18};

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

// // 修改鹏举的年龄 19-39(真实年龄)

// array[1] = 39;

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

// printf(“\n”);

// // 输出(打印)数组中的所有元素

// //循环输出

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

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

// }

// printf(“\n”);

// 1、定义⼀个具有20个元素的整型数组,每个元素的取值范围是

// 30-70之间,求数组元素的和。

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

// int sum = 0;

// 遍历数组

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

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

// printf(“a[%d] = %d\n”,i,a[i]);

// sum = sum + a[i]; //相当于 sum += a[i];

// }

// printf(“sum:%d”,sum);

// 2、复制⼀个数组,即两个数组容量⼀样,把其中⼀个数组中的

// 元素复制到另外⼀个数组中。

// 实现两个数组的交换

// int a[5] = {1, 2, 3, 4, 5};

// int b[5] = {6, 7, 8, 9, 10};

// int temp[5] = {0};

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

// temp[i] = a[i];

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

// b[i] = temp[i];

// }

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

// printf(“a[%d] = %d\n”,i,a[i]);

// }

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

// printf(“b[%d] = %d\n”,i,b[i]);

// }

// 3、⽣成2个数组,每个数组都有10个元素,元素取值范围20-40之间,数组对应元素相加,放到另外⼀个数组中。

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

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

// int c[10] = {0};

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

// a[i] = arc4random() % 21 + 20;

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

// b[i] = arc4random() % 21 + 20;

// printf(“b[%d] = %d\n”,i,b[i]);

// c[i] = a[i] + b[i];

// printf(“c[%d] = %d\n”,i,c[i]);

// }

// 数组越界问题
// 系统不会提示你越界 需要自己注意
// 切记:不要数组越界


// int array[5] = {1, 3, 5, 7, 9};

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

// 数组在内存当中是连续的一段存储区域
// 并且 数组名字 就是 数组元素的首地址(第一个元素的地址)
// 注意: 数组不能直接整体赋值
// array1 = array2 错误的
// 数组的名字 是数组的首地址 是一个地址 并且地址是一个常量 常量在程序执行期间不能改变的量,所以数组不能直接赋值

// 1、随机产⽣10个[20,40]数,并对10个数从⼩到⼤排序。
// 采用冒泡排序
// 精髓: 前后两个数比较大小 前面大于后面的 两个数交换位置 依次继续
// 冒泡排序设计双循环 外层循环控制趟数 内层循环控制比较次数


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

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

// a[i] = arc4random() % 21 + 20;

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

// }

// int t = 0;

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

// for (int j = 1 ; j < 10; j++) {

//

// if (a[j] < a[j - 1]) {

// t = a[j - 1];

// a[j - 1]= a[j];

// a[j] = t;

// }

// }

// }

// printf(“\n”);

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

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

// }

//

// int array[5] = {9, 7, 5, 3, 1};

// for (int i = 0; i < 5 - 1; i++) {

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

// if (array[j] > array[j + 1]) {

// int temp = array[j];

// array[j] = array[j + 1];

// array[j + 1] = temp;

// }

// }

// }

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

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

// }

// 字符数组

// 字符数组两种表现形式

/**
*   常用字符串处理函数  都只能对字符串进行操作,不是是字符数组
strlen(要计算的字符串) 计算字符串的长度 打印的是有效长度
从第一位开始如果不是'\0',长度加1  遇到'\0'结束,并且输出的长度不包含'\0'

strcpy(目标字符串,源字符串) 字符串拷贝
strcat() 字符串拼接
strcmp() 字符串比较
*/
// 字符串比字符数组多了一个'\0'
// '\0' 是用来结束字符串的


// char str1[] = {‘i’, ‘p’, ‘h’, ‘\0’, ‘n’, ‘e’};

// char str2[] = “iphone”; // 字符串

// // sizeof() 是用来打印数据类型或者变量 所占字节数

// // %lu 无符号的长整形

//// printf(“%lu “,sizeof(str1));

//// printf(“%lu”,sizeof(str2));

//

// printf(“%lu “,strlen(str1));

// printf(“%lu “,strlen(str2));

// 字符串的拷贝

// 拷贝: 从第一个字符开始拷贝 遇到’\0’拷贝结束

// 注意: 目标字符串的长度最好大于源字符串

// char str1[20] = {0}; // 目标字符串

// char str2[] = “I Love LanOu “; // 源字符串

// // strcpy(目标字符串,源字符串) 字符串拷贝

// strcpy(str1, str2);

// // 打印字符串 用%s 如果不是’\0’ 一个字符一个字符输出 如果遇到’\0’ 就结束

// printf(“%s”,str1);

// // 字符串的拼接

// // 注意: 被拼接的字符串长度一定要够接收拼接完的整个字符串

// char str1[100] = “I Love”;

// char str2[] = ” China”;

// // 把str2拼接到str1的后面

// strcat(str1, str2);

// printf(“%s”,str1);

// 字符串比较
// 从第一个字符进行比较 如果一样,继续看第二个字符 如果不一样 开始进行比较 比较内容是该字符在ASCII码表中对应数 前面将去后面的 得到一个返回值,返回值是正数 则前面大 反之 则后面大,然后比较结束.如果返回值是0,那么两个字符串相同


// char str1[] = “你好”;

// char str2[] = “你好”;

// //接收比较的结果

// int result = strcmp(str1, str2);

// printf(“%d”,result);

// 练习


// 查找字符串中的空格数:

// 例如:“I love iOS, i want an iPhone5s”

// 6个空格

// char a[] = “I love iOS, i want an iPhone5s”;

// int count = 0;

// printf(“请输入字符串:”);

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

// if (a[i] == ’ ‘) {

// count = count + 1;

// }

// }

// printf(“\n%d “,count);

//

// 将字符串倒转:

// 例如:“afjnpue”

// 转变成字符串“eupnjfa”

// (注:是改变字符串本⾝,不是反向输出)

// char str1[100] = {0};

// printf(“请输入一个字符串:”);

// scanf(“%s”,str1);

// printf(“%s\n”,str1);

// unsigned long int Length = strlen(str1);

// printf(“%lu\n”,Length);

//// if (Length % 2 == 0) {

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

//// int t = 0;

//// t = str1[i];

//// str1[i]= str1[Length - i -1];

//// str1[Length - i -1] = t;

//// }

//// printf(“%s”,str1);

//// } else {

//// for (int i = 0; i < (Length - 1) / 2; i++) {

//// int t = 0;

//// t = str1[i];

//// str1[i]= str1[Length - i - 1];

//// str1[Length - i -1] = t;

//// }

//// printf(“%s”,str1);

//// }

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

// int t = 0;

// t = str1[i];

// str1[i]= str1[Length - i - 1];

// str1[Length - i -1] = t;

// }

// printf(“%s”,str1);

int b[6] = {1,2,3,4,5,6};
for (int i = 0; i < 6 - 1; i++) {
for (int j = 0; j < 6 - 1 - i; j++) {
if (b[j] < b[j + 1]) {
int temp = b[j];
b[j] = b[j + 1];
b[j + 1] = temp;
}
}
}
for (int i = 0; i < 6; i++) {
printf("%d\n",b[i]);
}

return 0;


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