C++学习(十六)(C语言部分)之 数组三
复习 以及 测试
/*
一维数组
数组是相同的数据的一个集合
<类型><数组名>[下标表达式]={数组元素 初始值};
数组名和变量的命名规则是一样的
数组名是一个地址
数组下标都是从0开始 字符串
字符串数组后面会有\0
""字符串 ''字符
\0是不会输出的 只要空间够 他就会自己加上
字符数组是不会自己添加 \0 需要手动添加 二维数组
在一位数组的基础上 加一个下标的维度
可以理解为数组的数组 */ #include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
//第一种表示方法
//int a, b, c, d, e, f, g;
//a = 1;
//b = 2;
//c = 3;
//d = 4;
//e = 5;
//f = 6;
//g = 7; //第二种表示方法
//int Arr[7] = {1,2,3,4,5,6,7};
//printf("%d\n",Arr[3]);//0~6 Arr[3] 会打印4 数组名是地址
//printf("%d\n",sizeof( Arr));
//printf("%d\n", sizeof(Arr[0])); //栗子
//int a[7] = { 1 };//是给数组的第一个元素进行初始化为1 其他的元素默认为0
//printf("%d\n",a[2]);
//0 1 2 3 4 5 6 数组元素下标与初始化的对应
//1 0 0 0 0 0 0 //栗子
//char Name[20] = "胖七";//字符串数组
//char Str1[5] = { 'H', 'E', 'L', 'L', 'O' };//后面没有\0 数组大小是5 里面的元素刚好也是5个 \0的位置没有了 所以会出现乱码
//char Str[20] = { 'H', 'E', 'L', 'L', 'O' };//后面有\0
// printf("名字:%s\n",Name);
//printf("Str:%s\n",Str1);
//printf("Str:%s\n", Str); //栗子
//char str[] = "hello";
//char str1[20] = { 1, 2, 3, 4, 5, 6 };
//char str2[] = {'n','i','h','a'};
//char str3[] = {"niha"};
//printf("%d\n",sizeof(str)); //结果为6 原因是 定义数组是没有给大小 是根据数组元素个数来计算大小的
//printf("%d\n", sizeof(str1));//结果为20 定义的数组大小为20
//printf("%d\n", sizeof(str2));//结果为4
//printf("%d\n", sizeof(str3));//结果为5 比上一个是多了一个 \0 //栗子
//int arr[3][5] = {15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
//int arr1[3][5] = { { 15, 14, 13, 12, 11 }, { 10, 9, 8, 7, 6 }, { 5, 4, 3, 2, 1 } };
//printf("%d\n",arr[1]);//打印出的是元素14的首地址
//printf("%d\n",arr1[1][2]);
//printf("%d\n",sizeof(arr1));
//printf("%d\n",sizeof(arr1[0])); //栗子 二维数组赋值
//int arr[3][5] = { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
//arr[1][3] = 88;//可以将初始化的数组元素进行修改 将7改为88
//for (int i = 0; i < 3; ++i)
//{
// for (int j = 0; j < 5; ++j)//后面不能加分号
// {
// printf("%d\t",arr[i][j]);
// }
// printf("\n");
//} ////栗子 随机赋值 用到随机数 rand();获取随机数的函数
////连连看游戏 需求: 1.图片是随机出现的 2.出现的图片是成对的
//int arr[3][5] = {0};
////int a = rand();//获取随机数
////int b=rand();
////printf("a:%d\n",a);
////printf("a:%d\n",b);
//srand(time(NULL));//种下随机数种子
//for (int i = 0; i < 3; ++i)
//{
// for (int j = 0; j < 5; ++j)
// {
// arr[i][j] = rand()%101;
// }
//}
//// 5%2 5/2=2....1
//for (int i = 0; i < 3; ++i)
//{
// for (int j = 0; j < 5; ++j)
// {
// printf("%d\t",arr[i][j]);
// }
// printf("\n");
//} //栗子 写拼图的地图游戏 需求:1数据不能重复
int arr[];
int temp[] = {,,,,,,,,,};
int len = ;
//随机给arr数组赋值 并且不可以重复
for (int i = ; i < ; ++i)
{
int m = rand() % len;//随机获取一个下标
arr[i] = temp[m];
for (int j = m; j < len - ; ++j)
{
temp[j] = temp[j + ];
}
len--;
}
//输出
for (int i = ; i < ; ++i)
{
printf("%d\t",arr[i]);
} getchar();
return ;
}
2018-07-18 12:46:54
C++学习(十六)(C语言部分)之 数组三的更多相关文章
- 强化学习(十六) 深度确定性策略梯度(DDPG)
在强化学习(十五) A3C中,我们讨论了使用多线程的方法来解决Actor-Critic难收敛的问题,今天我们不使用多线程,而是使用和DDQN类似的方法:即经验回放和双网络的方法来改进Actor-Cri ...
- Scala学习十六——XML处理
一.本章要点 XML字面量<like>this</like>的类型为NodeSeq 可以在XML字面量中内嵌Scala代码 Node的child属性产出后代节点 Node的at ...
- zeromq学习记录(六)C语言示例
考虑到官方的示例c语言是最多的 官方未使用C++语言演示的例子就使用VC编译C语言例子 记录在此 /************************************************** ...
- salesforce lightning零基础学习(十六) 公用组件之 获取字段label信息
我们做的项目好多都是多语言的项目,针对不同国家需要展示不同的语言的标题.我们在classic中的VF page可谓是得心应手,因为系统中已经封装好了我们可以直接在VF获取label/api name等 ...
- Java学习十六
学习内容: 1.做毕设 2.Java异常类 3.Java包装类 1.System.exit(1):终止程序运行,终止final执行方法 2.throws抛出异常类型,throw抛出异常对象 用法:th ...
- 【Redis 系列】redis 学习十六,redis 字典(map) 及其核心编码结构
redis 是使用 C 语言编写的,但是 C 语言是没有字典这个数据结构的,因此 C 语言自己使用结构体来自定义一个字典结构 typedef struct redisDb src\server.h 中 ...
- Java开发学习(十六)----AOP切入点表达式及五种通知类型解析
一.AOP切入点表达式 对于AOP中切入点表达式,总共有三个大的方面,分别是语法格式.通配符和书写技巧. 1.1 语法格式 首先我们先要明确两个概念: 切入点:要进行增强的方法 切入点表达式:要进行增 ...
- 智能车学习(十六)——CCD学习
一.使用硬件 1.兰宙CCD四代 优点:可以调节运放来改变放大倍数 缺点:使用软排线(容易坏),CCD容易起灰,需要多次调节 2.野火K60底层 二.CCD硬件电路 ( ...
- Java编程思想学习(十六) 并发编程
线程是进程中一个任务控制流序列,由于进程的创建和销毁需要销毁大量的资源,而多个线程之间可以共享进程数据,因此多线程是并发编程的基础. 多核心CPU可以真正实现多个任务并行执行,单核心CPU程序其实不是 ...
- java web 学习十六(JSP指令)
一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...
随机推荐
- python 列表切片
列表切片是python语言独有的特征,大大方便了我们的编码. 首先,在介绍切片之前,必须要知道一个知识,就是python列表的读写,下标可以使用负数. insert,get,set 操作均可传入负数下 ...
- laravel在控制器中动态创建数据表
Schema::connection('usertable')->create('test', function ($table) { $table->increments('id'); ...
- html 多媒体使用
HTML插件 辅助应用程序(helper application)是由浏览器启动的程序,辅助应用程序也称为插件. 辅助应用程序可用于播放音频和视频(或其他 ).辅助程序是使用<Object> ...
- Win10系列:UWP界面布局进阶1
全新的Windows 10 操作系统支持多种视图模式,用户可以根据需要选择不同的视图模式显示应用.当用户同时浏览或操作多个应用程序时,可以将应用视图调整为辅屏视图或填充视图,这样在一个屏幕中可以同时对 ...
- Spring Boot + thymeleaf 后台与页面(二)
Spring Boot推荐使用thymeleaf模板完成与页面的交互(已不支持JSP某些特性,不推荐JSP) 步骤 在一个Spring Boot Web项目基础上,也可以参考我前一篇文章建立的项目 1 ...
- 读书笔记 C#委托的BeginInvoke、EndInvoke之浅析
c#中有一种类型叫委托,它是一种引用类型.可以引用静态与非静态的方法,且这些方法的参数列表和返回值类型必须与所声明的委托一致. 委托引用的方法可以通过BeginInvoke和EndInvoke来异步进 ...
- springMVC操作cookie和session
cookie相关说明: 1.cookie由服务器端创建,然后添加到HttpServletResponse中发送给客户端(浏览器). 2.可以添加多个cookie键值对. 3.cookie由键值名和键值 ...
- 2.8 C++参数初始化表
参考:http://www.weixueyuan.net/view/6340.html 总结: 参数初始化表可以为任何数据成员进行初始化. 初始化const成员变量的唯一方法只有利用参数初始化表. 通 ...
- SharePoint Framework 企业向导(十)
博客地址:http://blog.csdn.net/FoxDave 接上一讲 SharePoint Framework部署范围 对于SharePoint Framework解决方案,只有一个部署范围: ...
- day 20 collection模块 time 模块 os 模块
一.collection模块 1.namedtuple: 生成可以使用名字来访问元素内容的tuple 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象 3.Counter: 计数器,主要 ...