zoukankan      html  css  js  c++  java
  • C语言----数组(基础篇八)

     最近出差回来了,继续把基础夯实。

     一维数组

        数组的作用:  

          如果你有一组类似的数据,一个个起名字麻烦也没意义,用个数组保存它们,用起来省事又方便。

        定义:

          类型名 数组名[常量表达式];

          如:

          int a[8];

          它定义了一个有8个元素的数组,下标从0-7

          初始化:int a[8]={0,1,2,3,4,5,6,7};

            8个元素分别初始化成0,1,2,3,4,5,6,7

          也可以:int a[8]={3};

           它只把a[0]初始化成3,后面的a[1]a[7]系统默认初始化为0


      程序1

        求任意5个数中的最大数

    // 8_1 求任意五个数中的最大数
    
    #include <stdio.h>
    
    int main()
    {
        int a[5], i, max; //定义含五个元素数组的整形数组,i 是下标,max 是最大数。
    
        //从键盘输入五个数
        for (i = 0;i<5;i++)
        {
            scanf_s("%d", &a[i]);
        }
    
        //找出最大的数
        max = a[0];
    
        for (i = 1;i<5;i++)
        {
            if (max < a[i])max = a[i];   //比max值大就赋值给 max
        }
        printf("%d
    ", max);
    }

        一般在数组前面有类型说明符的,如double a[5]就是“定义”数组。反之,前面没有类型说明符的,如n=a[5]a[5]=n就是使用数组

        定义数组时,方括号里只允许使用常量,不允许出现变量。如:

        int n=5;

        int a[n];

        这是非法的数组定义。

        数组在使用时就不允许使用 a[8]={0} 这样的方式来给数组赋值,只有使用循环来给数组元素一个一个地赋值。

         

        定义数组时,方括号中可以是空的,如:

          int a[]={1,2,3};

        这时电脑会自动计算出a数组有3个元素,会把这行代码翻译成int a[3]={1,2,3};再执行。

        

        这种数组一定要用花括号初始化,比如

        int a[];

        这是非法的定义。


        程序2

          将数组中的值按逆序重新存放。例如,原来顺序为5、8946,调整以后为64985

    //程序2
    //将数组中的值按逆序重新存放。例如,原来顺序为5、8、9、4、6,调整以后为6、4、9、8、5。
    
    #include <stdio.h>
    
    int main()
    {
        int a[5] = { 5,8,9,4,6 };
        int b,c;                          //交换用的临时变量
        for (int i=0;i<= 5/2;i++)         //数组执行两次互换
        {
            b = a[i];
            a[i] = a[5 - i - 1];
            a[5 - i - 1] = b;
        }
    
    
        for (int i = 0; i < 5; i++)      //遍历输出
        {
            printf("%d	", a[i]);
        }
        
    }

      程序3

      求某数列的前40个数:1,1,2,3,5,8,13,21…

    //8-3:求某数列的前40个数:1,1,2,3,5,8,13,21… 
    #include <stdio.h>
    main()
    {
        int i, a[40];            //循环变量,数组
        a[0] = a[1] = 1;            //前两项不需要计算,直接初始化为1
    
        for (i = 2; i < 40; i++)
        {
            a[i] = a[i - 2] + a[i - 1];
        }
            
    
        for (i = 0; i < 40; i++)
        {
            printf("%d	", a[i]);
        }
            
    }
  • 相关阅读:
    Java程序:从命令行接收多个数字,求和并输出结果
    大道至简读后感
    大道至简第一章读后感Java伪代码
    Creating a SharePoint BCS .NET Connectivity Assembly to Crawl RSS Data in Visual Studio 2010
    声明式验证超时问题
    Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: "An update conflict has occurred, and you must re-try this action"
    Upgrading or Redeploying SharePoint 2010 Workflows
    Upgrade custom workflow in SharePoint
    SharePoint 2013中Office Web Apps的一次排错
    How to upgrade workflow assembly in MOSS 2007
  • 原文地址:https://www.cnblogs.com/httpcc/p/15187695.html
Copyright © 2011-2022 走看看