VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 844|回复: 0

[交流] C学习之路的点滴记录基础语法练习(数组巩固) 大牛飘过

[复制链接]
13_avatar_middle
最佳答案
1 
在线会员 发表于 2021-4-26 23:50:49 | 显示全部楼层 |阅读模式
c语言的数组练习
一维数组定义方式
  1. int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
  2.         int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
  3.         int arr[10] = { 1,2,3,4,5 };  // 初始化元素5个  其余全是0
  4.         int arr[10] = { 1 };
复制代码
//初始化元素1个 其余全是0
  1. int main()
  2. {
  3.         int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
  4.         for (int i=0;i<10;i++) //i<10也可以写成  sizeof(arr)/sizeof(arr[0]));
  5.         {
  6.                 printf("%d \n", arr[i]);  //读取数组的每个元素
  7.         }
  8.         return EXIT_SUCCESS;
  9. }
复制代码

  1. int main()
  2. {
  3.         int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
  4.         arr[2]=arr[5];
  5.         arr[5]=arr[3]*2;   两个可以给数组赋值操作
  6.         printf("%p \n", arr);
  7.         printf("%p \n", &arr);
  8.         printf("%d \n", sizeof(arr));  //数组在内存空间和类型有关 int4字节 *元素个数  
  9.         printf("%d \n", sizeof(arr)/sizeof(arr[0]));
  10.         return EXIT_SUCCESS;
  11. }
复制代码


十只小猪称体重
  1. #define SIZE 10

  2. int main()
  3. {
  4.         int arr[SIZE];
  5.         int max = 0;
  6.         for (int i=0; i<SIZE;i++)
  7.         {
  8.                 scanf("%d", &arr[i]);  //根据输入的值
  9.         }
  10.         for (int i=0;i<SIZE;i++)
  11.         {
  12.                 if (arr[i] > max);  //判断那个小猪最重
  13.                 {
  14.                         max = arr[i];
  15.                 }
  16.         }
  17.         printf("%d \n", max);
  18.         return EXIT_SUCCESS;
  19. }
复制代码


数组倒序
  1. int main()
  2. {
  3.         int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
  4.         int i = 0;
  5.         int j = sizeof(arr) / sizeof(arr[0]) - 1;
  6.         while (i < j)
  7.         {
  8.                 int temp = arr[i];
  9.                 arr[i] = arr[j];
  10.                 arr[j] = temp;
  11.                 i++;
  12.                 j--;
  13.         }
  14.         for (int i=0;i<10;i++)
  15.         {
  16.                 printf("%d ", arr[i]);
  17.         }
  18.         return EXIT_SUCCESS;
  19. }
复制代码

数组升序
  1. int arr[10] = { 7,2,3,5,4,8,1,6,9,10 };  //数组打乱利用冒泡排序进行有序的显示
  2.         for (int i=0;i<10-1;i++)          //外层控制行
  3.         {
  4.                 for (int j = 0; j < 10 - 1 - i; j++)  //内层控制列
  5.                 {
  6.                         if (arr[j]>arr[j+1])   //数组降序<
  7.                         {
  8.                                 int temp = arr[j];
  9.                                 arr[j] = arr[j + 1];
  10.                                 arr[j + 1] = temp;
  11.                         }
  12.                 }
  13.         }
  14.         for (int i=0;i<10;i++)
  15.         {
  16.                 printf("%d ", arr[i]);
  17.         }
  18.         return EXIT_SUCCESS;
复制代码

二维数组三种使用样式
  1. int arr[2][3] = { {1,2,3},{4,5,6}};
  2.          int arr[][3]={ {1,2,3},{4,5,6}};
  3.         int arr[2][3]=
  4.         {
  5.                 {1,2,3},
  6.                 {4,5,6}
  7.         };
  8.         for (int i = 0; i < 2; i++)
  9.         {
  10.                 for (int j = 0; j < 3; j++)
  11.                 {
  12.                         printf("%d ", arr[i][j]);
  13.                 }
  14.         }
复制代码


       printf("%p ", arr);
        printf("%p ", arr[0]);
        printf("%p ", &arr[0][0]);        //取地址结果三个都是一样的
三维数组的使用    (四维 五维  好像还没有)
  1. int main()
  2. {
  3.         int arr[2][3][4]=  //int arr[][3][4]  2可以不输入
  4.         {
  5.                 {
  6.                   {1,2,3,4},
  7.                    {2,3,4,5},
  8.                    {3,4,5,6}
  9.                 },
  10.            {
  11.                    {4,5,6,7},
  12.                {5,6,7,8},
  13.                {6,7,8,9}
  14.        }
  15.         };
  16.         for (int i=0;i<2;i++)
  17.         {
  18.                 for (int j=0;j<3;j++)
  19.                 {
  20.                         for (int k=0;k<4;k++)
  21.                         {
  22.                                 printf("%d \t", arr[i][j][k]);
  23.                         }
  24.                         printf("\n");
  25.                 }
  26.         }
  27.         printf("%d \n", sizeof(arr));
  28.         printf("%d \n", sizeof(arr[0]));
  29.         printf("%d \n", sizeof(arr[0][0]));
  30.         printf("%d \n", sizeof(arr[0][0][0]));

  31.         printf("层: %d \n", sizeof(arr) / sizeof(arr[0]));
  32.         printf("行: %d \n", sizeof(arr[0]) / sizeof(arr[0][0]));
  33.         printf("列: %d \n", sizeof(arr[0][0]) / sizeof(arr[0][0][0]));
  34.         return EXIT_SUCCESS;
  35. }
复制代码

定义字符数组
char arr[5] = { 'h','e','l','l','o' };   //字符数组太麻烦了    还是字符串数组好些
        for (int i=0;i<5;i++) //i<sizeof(arr)/sizeof(arr[0]));
        {
                printf("%c", arr);
        }       

字符串数组  遇到\0结束   数字小了 下标越界

        char arr[20] = { 110,45,38,40,50 };
        char arr[][30] = { "hello","world" };
        char  arr[]="hello";  //三种定义方法
       char ch[10];  必须保留\0占位符
        scanf("%9s", ch);           //9S 是限定输入9个字符    遇到空格结束
        printf("%s", ch);
字符串的输入输出   这些可以对文件操作  先=练习到这  下回练习文件操作
gets   使用方式 char ch[10]   gets(ch)  可以带空格接收字符串   scanf("[^ \n]",ch)这样写也可以接收空格
fgets  使用方式 char ch[10]   fgets(ch,sizeof(ch),stdin);  stdin 其中0就是stdin,表示输入流,指从键盘输入
puts   使用方式 char ch[] = "hello";  puts(ch);  //自带换行
puts("hello"); 遇到\0结束    相当于printf(“hello”)   puts("\n")
fputs  使用char ch[] = "hello";  fputs(ch, stdout);      stdout 输出   stdin输入
strlen  使用方式char ch[] = "hello";   printf("%d",strlen(ch));

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small thzzl + 2 + 2 很给力!

查看全部评分





上一篇:关于CPropertySheet使用多字节编码抛出异常的问题
下一篇:子函数内部字符串外部返回,怎样编程?
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-5-29 22:58

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表