1.
数组------—维数组和二维数组
字符数组中只能存放字符或字符串,这句话对不对?
字符数组中只能存放字符或字符串,这句话对不对?
不对,字符数组实际上是存放字符编码的
字符44
字符数组中只能存放字符或字符串,这句话对不对?
不对,字符数组实际上是存放字符编码的
字符数组中
只能存练习4:
char buf[ ] = {"anihc evol l"}; //[ '\0'不参与逆序]
要求写一个代码实现上述字符串的的逆序,要求逆序之后,数组buf 中的内容为"I love china"。
放字符或字符串,这句话对不对?
不对,字
printf( "1.%s\n" , buf);
//两两交换,交换n/2次
for (i = 0; i < len / 2; i++){
c = buf[i];
buf[i] = buf[len-i-1];
buf[len-i-1]= c;
}
printf ( "2.%s\n" , buf);
return 0;
/ 2; i++){
c = buf[i];
buf[i] = buf[len-i-1];buf[len-i-1]= c;
}
printf ( "2.%s\n" , buf);return 0;
际上是存放字符编码的
数组中只能存放字符或字符串,这句话对不对?
不对,字符数组实
际1.字符数组的总结:
存放:
可存放多个单独字符
存放字符串时,结尾处有'\0'
内存模型:
和普通数组一样拥有连续的内存空间,只不过数组内部存放的是字符编码
字符串的输入输出:
输出printf
输出字符串是以'\0'作为结尾
输入scanf
输入字符串是以空格、回车、tab键作为结束符
5 。选择排序
上
是存
#include <stdio.h>
int main(int argc,const char *argv[])
{
int a[ 5] = { 50,40,30,20,10};
int i, j;
int min = 0;
int temp = 0;
int size = sizeof(a) / sizeof(a[0]);
for (i = 0; i < size; i++)//总共选择5轮
{
min = i;//标记每轮第一个数下标
for (j = i; j < size; j++)//每选择完一轮,就少一次判断
{
if(a[j] < a[min])//判断两个数中最小值,记录最小值下标
min = j;
}
if(min != i)//第三变量法交换数据
{
temp= a[i];
a[i]= a[min];
a[min] = temp;
}
}
for (i = 0; i < size; i++){
printf("%d ", a[i]);}
putchar( '\n ' );
return 0;
}
这段代码实现了选择排序算法来对一个整型数组进行排序。选择排序是一种简单但效率较低的排序算法,它的基本思想是每次从未排序部分选择一个最小(或最大)的元素,将其与未排序部分的第一个元素交换位置,逐渐形成有序部分。
代码解释如下:
1. 定义一个包含5个整数的数组a,并初始化数组元素的值为50、40、30、20、10。
2. 声明变量i、j、min、temp用于循环和交换操作,以及变量size用于记录数组a的大小。
3. 使用for循环进行5轮选择排序。在每一轮中,先将i赋值给min,表示当前轮的第一个数的下标。
4. 使用嵌套的for循环,从当前轮的第一个数开始,逐个与它后面的数进行比较,找到最小值的下标,并将该下标赋值给min。
5. 如果最小值的下标min不等于当前轮的第一个数的下标i,说明最小值不是当前轮的第一个数,需要进行交换。使用temp暂存当前轮的第一个数,然后将最小值赋值给当前轮的第一个数,再将temp赋值给最小值的位置,完成交换。
6. 排序完成后,再次使用for循环打印排序后的数组a的元素。
7. 使用putchar函数输出一个换行符。
8. 返回0表示程序执行成功结束。
放字符编码的
作业2:打印杨辉三角。
定义int a[10][10];
1
11
1 2 1
1 3 3 1
1 4 6 4 1
o o o o o o ooo
特点:
1.每行第一个数和最后一个数都是1
2.除了头和尾外,该数列里面的数a[i]i]= a[i - 1][j- 1]+ a[i - 1][j]
( i和j表示行数和列数)
第i行 第j列----3,2
例:a[3][2] = a[2][1]+a[2][2]
重点:
a[i][0] = a[i][i] = 1;
for (j = 1; j < i; j++)//从第三行开始排列{
a[i][j] = a[i-1][j-1] +a[i-1][j];
}
a[2][1]= a[1][0]+a[1][1];
erw二维数组
4.数组大小
元素的个数·一个元素的大小<===>6 * sizeof(a[o][o])<===> sizeof(a)
7.定义二维数组,行数和列数哪个可以省略?
行数可以省略不写,系统会根据你定义的默认确定
【类型 元素{表达 个数} 大小 行数
最后一个元素 存放 省略 】