程-c1语言-数组------—维数组和二维数组

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.定义二维数组,行数和列数哪个可以省略?
行数可以省略不写,系统会根据你定义的默认确定
 

【类型 元素{表达  个数}  大小 行数

最后一个元素 存放 省略 】

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼城英泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值