复习 以及 测试

 /*
一维数组
数组是相同的数据的一个集合
<类型><数组名>[下标表达式]={数组元素 初始值};
数组名和变量的命名规则是一样的
数组名是一个地址
数组下标都是从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语言部分)之 数组三的更多相关文章

  1. 强化学习(十六) 深度确定性策略梯度(DDPG)

    在强化学习(十五) A3C中,我们讨论了使用多线程的方法来解决Actor-Critic难收敛的问题,今天我们不使用多线程,而是使用和DDQN类似的方法:即经验回放和双网络的方法来改进Actor-Cri ...

  2. Scala学习十六——XML处理

    一.本章要点 XML字面量<like>this</like>的类型为NodeSeq 可以在XML字面量中内嵌Scala代码 Node的child属性产出后代节点 Node的at ...

  3. zeromq学习记录(六)C语言示例

    考虑到官方的示例c语言是最多的 官方未使用C++语言演示的例子就使用VC编译C语言例子 记录在此 /************************************************** ...

  4. salesforce lightning零基础学习(十六) 公用组件之 获取字段label信息

    我们做的项目好多都是多语言的项目,针对不同国家需要展示不同的语言的标题.我们在classic中的VF page可谓是得心应手,因为系统中已经封装好了我们可以直接在VF获取label/api name等 ...

  5. Java学习十六

    学习内容: 1.做毕设 2.Java异常类 3.Java包装类 1.System.exit(1):终止程序运行,终止final执行方法 2.throws抛出异常类型,throw抛出异常对象 用法:th ...

  6. 【Redis 系列】redis 学习十六,redis 字典(map) 及其核心编码结构

    redis 是使用 C 语言编写的,但是 C 语言是没有字典这个数据结构的,因此 C 语言自己使用结构体来自定义一个字典结构 typedef struct redisDb src\server.h 中 ...

  7. Java开发学习(十六)----AOP切入点表达式及五种通知类型解析

    一.AOP切入点表达式 对于AOP中切入点表达式,总共有三个大的方面,分别是语法格式.通配符和书写技巧. 1.1 语法格式 首先我们先要明确两个概念: 切入点:要进行增强的方法 切入点表达式:要进行增 ...

  8. 智能车学习(十六)——CCD学习

    一.使用硬件 1.兰宙CCD四代      优点:可以调节运放来改变放大倍数      缺点:使用软排线(容易坏),CCD容易起灰,需要多次调节   2.野火K60底层     二.CCD硬件电路 ( ...

  9. Java编程思想学习(十六) 并发编程

    线程是进程中一个任务控制流序列,由于进程的创建和销毁需要销毁大量的资源,而多个线程之间可以共享进程数据,因此多线程是并发编程的基础. 多核心CPU可以真正实现多个任务并行执行,单核心CPU程序其实不是 ...

  10. java web 学习十六(JSP指令)

    一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...

随机推荐

  1. linux下find命令详解

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; find命令的参数 ...

  2. application Initialization设置导致处理程序ExtensionlessUrlHandler-Integrated-4.0在其模块列表中有一个错误模块问题的解决

    HTTP 错误 500.21 - Internal Server Error 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“Ma ...

  3. web技术栈中不可或缺的Linux技术

    Web技术最重要的载体便是服务器,服务器运行在公共的网络环境下,为广大的用户提供网页浏览.信息通讯.消息推送等服务,从最开始的硬件服务器到虚拟主机技术,再到虚拟化技术的出现和云概念的兴起,绝大部分都是 ...

  4. Date和Timestamp区别

    主要是精度问题,date没有ms,而timestamp是有ms的,所以date的精度要低于timestamp. 而且二者可以互相转换. 除此之外,没有什么不同,

  5. openpyxl读取Excel数据

    #! Python3 #-*- coding:utf8 -*- import openpyxl #载入表格内容 wb=openpyxl.load_workbook('e:\\work\\newFile ...

  6. linux文件查看

    查看目录 #查看文件 使用  ls  命令,加上参数 -l 表示查看详细信息,-a 表示查看包含隐藏文件在内的文件.也可使用通配符,*代表任意个字符,? 表示单个字符. $ ls ch*.doc #表 ...

  7. 8.2 C++标准输出流对象

    参考:http://www.weixueyuan.net/view/6408.html 总结: iostream头文件,包含了该头文件后,我们就可以直接使用这些对象,包含标准的输出流对象cout.ce ...

  8. 5.6 C++重载下标操作符

    参考:http://www.weixueyuan.net/view/6384.html 总结: 下标操作符是必须要以类的成员函数的形式进行重载的.其在类中的声明格式如下:    返回类型 & ...

  9. android lombok 使用

    把get /set / toString/hash/equal等方法从源文件中简化掉直接编译到二进制文件中 地址https://github.com/rzwitserloot/lombok 一 安装l ...

  10. Oracle远程登录命令

    sqlplus登陆方式 sqlplus有几种登陆方式 比如: 1.C: > sqlplus "/as sysdba" C: > sqlplus / as sysdba ...