欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C++学习(十六)(C语言部分)之 数组三

程序员文章站 2022-07-01 11:09:48
复习 以及 测试 ......

复习 以及 测试

 

  1 /*
  2 一维数组
  3      数组是相同的数据的一个集合
  4      <类型><数组名>[下标表达式]={数组元素 初始值};
  5      数组名和变量的命名规则是一样的
  6      数组名是一个地址
  7      数组下标都是从0开始
  8 
  9 字符串
 10      字符串数组后面会有\0
 11      ""字符串  ''字符
 12      \0是不会输出的 只要空间够 他就会自己加上
 13      字符数组是不会自己添加 \0 需要手动添加
 14 
 15 二维数组
 16      在一位数组的基础上 加一个下标的维度
 17      可以理解为数组的数组
 18 
 19 
 20 
 21 */
 22 
 23 
 24 #include<stdio.h>
 25 #include<stdlib.h>
 26 #include<time.h>
 27 int main()
 28 {
 29     //第一种表示方法
 30     //int a, b, c, d, e, f, g;
 31     //a = 1;
 32     //b = 2;
 33     //c = 3;
 34     //d = 4;
 35     //e = 5;
 36     //f = 6;
 37     //g = 7;
 38     
 39     //第二种表示方法
 40     //int Arr[7] = {1,2,3,4,5,6,7};
 41     //printf("%d\n",Arr[3]);//0~6  Arr[3] 会打印4 数组名是地址
 42     //printf("%d\n",sizeof( Arr));
 43     //printf("%d\n", sizeof(Arr[0]));
 44     
 45     //栗子
 46     //int a[7] = { 1 };//是给数组的第一个元素进行初始化为1  其他的元素默认为0
 47     //printf("%d\n",a[2]);
 48     //0 1 2 3 4 5 6 数组元素下标与初始化的对应
 49     //1 0 0 0 0 0 0
 50 
 51     //栗子
 52     //char Name[20] = "胖七";//字符串数组
 53     //char Str1[5] = { 'H', 'E', 'L', 'L', 'O' };//后面没有\0 数组大小是5 里面的元素刚好也是5个 \0的位置没有了 所以会出现乱码
 54     //char Str[20] = { 'H', 'E', 'L', 'L', 'O' };//后面有\0
 55  //   printf("名字:%s\n",Name);
 56     //printf("Str:%s\n",Str1);
 57     //printf("Str:%s\n", Str);
 58 
 59     //栗子
 60     //char str[] = "hello";
 61     //char str1[20] = { 1, 2, 3, 4, 5, 6 };
 62     //char str2[] = {'n','i','h','a'};
 63     //char str3[] = {"niha"};
 64     //printf("%d\n",sizeof(str));  //结果为6   原因是 定义数组是没有给大小 是根据数组元素个数来计算大小的
 65     //printf("%d\n", sizeof(str1));//结果为20        定义的数组大小为20
 66     //printf("%d\n", sizeof(str2));//结果为4
 67     //printf("%d\n", sizeof(str3));//结果为5  比上一个是多了一个 \0
 68 
 69     //栗子
 70     //int arr[3][5] = {15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
 71     //int arr1[3][5] = { { 15, 14, 13, 12, 11 }, { 10, 9, 8, 7, 6 }, { 5, 4, 3, 2, 1 } };
 72     //printf("%d\n",arr[1]);//打印出的是元素14的首地址
 73     //printf("%d\n",arr1[1][2]);
 74     //printf("%d\n",sizeof(arr1));
 75     //printf("%d\n",sizeof(arr1[0]));
 76 
 77     //栗子 二维数组赋值
 78     //int arr[3][5] = { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 };
 79     //arr[1][3] = 88;//可以将初始化的数组元素进行修改 将7改为88
 80     //for (int i = 0; i < 3; ++i)
 81     //{
 82     //    for (int j = 0; j < 5; ++j)//后面不能加分号
 83     //    {
 84     //        printf("%d\t",arr[i][j]);
 85     //    }
 86     //    printf("\n");
 87     //}
 88 
 89     ////栗子 随机赋值 用到随机数 rand();获取随机数的函数
 90     ////连连看游戏  需求: 1.图片是随机出现的 2.出现的图片是成对的  
 91     //int arr[3][5] = {0};
 92     ////int a = rand();//获取随机数
 93     ////int b=rand();
 94     ////printf("a:%d\n",a);
 95     ////printf("a:%d\n",b);
 96     //srand(time(NULL));//种下随机数种子 
 97     //for (int i = 0; i < 3; ++i)
 98     //{
 99     //    for (int j = 0; j < 5; ++j)
100     //    {
101     //        arr[i][j] = rand()%101;
102     //    }
103     //}
104     ////  5%2   5/2=2....1
105     //for (int i = 0; i < 3; ++i)
106     //{
107     //    for (int j = 0; j < 5; ++j)
108     //    {
109     //        printf("%d\t",arr[i][j]);
110     //    }
111     //    printf("\n");
112     //}
113 
114     //栗子 写拼图的地图游戏  需求:1数据不能重复
115     int arr[10];
116     int temp[10] = {1,2,3,4,5,6,7,8,9,10};
117     int len = 10;
118     //随机给arr数组赋值 并且不可以重复
119     for (int i = 0; i < 10; ++i)
120     {
121         int m = rand() % len;//随机获取一个下标
122         arr[i] = temp[m];
123         for (int j = m; j < len - 1; ++j)
124         {
125             temp[j] = temp[j + 1];
126         }
127         len--;
128     }
129     //输出
130     for (int i = 0; i < 10; ++i)
131     {
132         printf("%d\t",arr[i]);
133     }
134 
135     getchar();
136     return 0;
137 }


C++学习(十六)(C语言部分)之 数组三

2018-07-18 12:46:54