C学习之路_7
来源:互联网 发布:假面骑士数据排行 编辑:程序博客网 时间:2024/06/06 05:08
不好意思,各位看官,最近只顾自己学了,忘记上传学习心得了,小女再次道歉哈。从今天起,将每天定时发学习笔记和学习心得,绝不会再让各位看官失望了,为了你们,我一定坚持。好了,废话不说了,直接上学习笔记。
今天主要学习了一维数组,各位看官,有需要的可以共享哦!
《学习笔记》
1.C语言中可以使用数组分配连续多个同类型的存储位置;
整个数组只有一个名字;
2.数组名称与变量名词
数组名称代表第一个存储位置的地址;
变量名称可以帮我们找到地址而且数组名称就是地址
数组名词不可以赋值,而变量名可以
3.数组下标
数组中每个存储位置有一个独立的编号,这个编号从0开始,这个编号叫做数组的下标;
数组名称加下标可以得到对应的数组变量的存储位置的地址(第一个存储位置的地址加下标不一定得到下标对应存储位置的地址)
4.
可以使用循环依次对数组中多个不同的存储位置进行处理。使用这种方式编写的程序中的语句量和处理的数据数量没有关系
5.数组初始化
1)数组初始化数据应该用大括号包含,相邻数据之间用逗号分开
2)初始化数据按顺序从前到后使用
3)如果初始化数据个数超过存储位置个数,则丢弃后面的数据
4)如果初始化数据个数少于存储位置个数,则后面的存储位置都初始化为0
5)如果初始化数据个数与存储位置一致,则可以省略存储位置的个数,即数组声明的下标可以省略
下午
重点回顾:
1.数组名称代表第一个存储位置的地址,它是不可以被修改的
2.数组名称加下标可以得到下标对应存储位置的地址
课程内容:
1、对数组名称进行sizeof计算得到整个数组的大小,以字节为单位
2、C99中支持变长数组(程序运行后才决定数组中存储位置的个数)
3、变长数组不可以被初始化
4、无法预测的数字叫随机数
5计算机中使用的,看起来不可预测的数字叫伪随机数。把rand函数调用语句直接当作数字使用就可以得到伪随机数;需要包含stdlib.h头文件
6、标准函数srand用来设置随机数种子,不同的种子可以得到不同的随机数序列
7、把当前系统时间做种子使用可以在每次运行程序时得到不同的随机数;标准函数time可以获得当前系统时间;为了使用这个标准函数,需要添加头文>
件time.h头文件
-----------------------------------------------------------------------------------------------------------------------------------
《理论变实践》
1.数组的表示方法:
*(数组名+下标):表示的是下标元素值,去掉*代表的是下标元素的地址:
2.数组赋值为1到10,并按赋值顺序的倒序打印赋值结果:
3.从键盘上得到一个五位数,把其中的数字单独打印到屏幕上,例如:
12345
1 2 3 4 5
代码方式一:
#include <stdio.h>
int main()
{
int arr[5], num, i = 0, j = 0;
printf("请输入一个五位的正整数:\n");
scanf("%d", &num);
while(num%10 != 0)
{
arr[i] = num%10;
i++;
num /= 10;
}
printf("数组输出为:\n");
for(j = i-1; j >= 0; j--)
{
//printf("%d ", arr[j]);
printf("%d ", *(arr + j));
//*(数组名 + 下标n)表示的是数组下标为n的元素的值
//(数组 + 下标n)表示的是数组下标为n的元素的地址,数组地址是“* 数据类型”的变量
}
printf("\n");
return 0;
}
代码方式二:
#include <stdio.h>
int main()
{
int num = 0, arr[5], pos = 4;
printf("请输入一个五位的正整数:\n");
scanf("%d", &num);
for(; num > 0; num /= 10)
{
arr[pos] = num % 10;
pos--;
}
for(num = 0; num <= 4; num++)
{
printf("%d ", arr[num]);
}
printf("\n");
return 0;
}
4.编写程序统计用户给定数字中每个数出现的次数,例如:
43545478
0 0
1 0
2 0
3 1
代码如下:
#include <stdio.h>
int main()
{
int num, pos, arr[10] = {};
printf("请输入指定的整数:\n");
scanf("%d", &num);
//方式一:
/*while(num%10 > 0)
{
arr[num%10]++;
num /= 10;
}*/
//方法二:
for(; num%10 != 0; num /= 10)
{
arr[num%10]++;
}
printf("统计结果如下:\n");
for(pos = 0; pos <= 9; pos++)
{
printf("数字%d出现的次数为:%d\n", pos, arr[pos]);
}
return 0;
}
- C学习之路_7
- Qt学习之路_7(线性布局和网格布局初步探索)
- Qt学习之路_7(线性布局和网格布局初步探索)
- Qt学习之路_7(线性布局和网格布局初步探索)
- [C++_7]继承_1
- 初学C#_7
- JavaScript_学习_7:Boolean对象
- vi学习_7初始化文件
- opencv学习_7 (颜色空间)
- opencv学习_7 (颜色空间)
- c/c++笔试面试题_7
- 数据结构_7:图算法 :c++/STL
- C++学习笔记_7:函数模板
- JqGrid学习总结_7 分组Grouping
- JavaSE学习笔记_7:Java内部类
- java学习日记_7:二维数组1.1
- C学习之路
- 为多态基类声明一个虚析构函数(Effective C++_7)
- abstract修饰方法总结
- MySQL的Galera Cluster介绍及其配置说明
- 正则表达式邮箱匹配详解
- DataGridView之为每行前面添加序号
- linux文件系统(三)——进程与VFS的关系
- C学习之路_7
- JAVA基础之集合数组详解
- mysql的基本语句(一)
- Trie树详解及其应用
- [20140311]CSDN不能”原生“支持LaTex公式吗?
- delphi三层架构
- Sublime 2 配置编译环境[Windows]
- 窗体间传值得几种方法
- 成功没有捷径