• 编程基础C—— 详谈一维数组的概念与应用


    1.一维数组:
    (1)一维数组的定义:
            数据类型 数组名[数组长度];     int a[10];
    (2)数组的地址就是第一个元素的首地址,数组的名字就代表数组的地址,且是一个常量。
    (3)数组的下标:元素在数组中的位置,下标是从0开始的。所以数组的下标最大只能为数组的长度减1,使用过程中,注意不要下标越界。
    (4)数组的初始化:
    直接给所有元素进行赋值;
    给部分元素进行赋值,未赋值的元素默认为0;
    直接省略长度,大括号里元素个数就是数组长度;
    (5)冒泡排序:
    排序思路:
       假设数组有n个元素,那么最外层循环(一共要比较多少趟)循环变量 ( i )需要 i<n-1,里层的循环(每趟要比较多少次)循环变量 ( j ),需要 j<n-1-i 
    例:
    1.输入10个成绩并计算其平均分
    #include <stdio.h>
    int main(int argc, const char * argv[])
    {
        float grade[10];
        printf("请输入成绩:");
        for (int i=0;i<10;i++)
        {
            scanf("%f",&grade[i]);
        }
        float ave=0.0;
        for (int j=0;j<10;j++)
        {
            ave = ave+grade[j];
        }
        printf("ave= %f",ave/10);
        return 0;
    }
     
    2.求数组中最大的元素:
    #include <stdio.h>
    int main(int argc, const char * argv[])
    {
       int a[4];
        printf("请输入数据:");
        for (int i=0;i<4;i++)
        {
            scanf("%d",&a[i]);
        }
        int j,max=*a;
        for (j=1;j<4;j++)
        {
            if(max<a[j])
               max=a[j];
        }

        printf("max= %d",max);
        return 0;
    }
    数组的应用实例:
    给定某年某月某日,将其转换成这一年的第几天并输出。
    #include <stdio.h>

    int main(int argc, const char * argv[])
    {
      
        int year,month,day;
        int run[]={0,31,29,31,30,31,30,31,31,30,31,30,31};  //定义闰年的月份的天数
        int pin[]={0,31,28,31,30,31,30,31,31,30,31,30,31};  //定义平年的月份的天数
        printf("请输入您查找的日期:");
        scanf("%d,%d,%d",&year,&month,&day);
        if ((year%4==0&&year%100!=0)||(year%400==0))   //判断是否是闰年:
        {
                for(int i=1;i<month;i++)
                {
                    day=day+run[i];
                }
        }else
                for(int i=1;i<month;i++)
                {
                    day=day+pin[i];
                }
     
        printf("day= %d",day);
        return 0;
    }
     
     
    输入10个成绩并且从大到小排序。
    #include <stdio.h>
     int main(int argc, const char * argv[])
     {
     float grade[10];
     printf("请输入成绩:");
     for (int i=0;i<10;i++)
     {
     scanf("%f",&grade[i]);
     }
         for(int i=0;i<9;i++)
         {
             for (int j=0;j<9-i;j++)
             {
                 int temp;
                 if (grade[j]<grade[j+1])
                     temp=grade[j];
                     grade[j]=grade[j+1];
                     grade[j+1]=temp;
             }
         }
         for(int i=0;i<10;i++)
         {
           printf("%.2f ",grade[i]);
         }
     return 0;
     }
    感谢您的访问! 若对您有帮助或有兴趣请关注博客:http://www.cnblogs.com/Rong-Shengcom/
  • 相关阅读:
    含字母的数字排序
    ci中简单实用的权限管理
    时间戳和日期转换
    prop
    定时器
    centos查看防火墙策略是firewall还是iptables
    centos上安装rabbitmq服务器
    springcloud微服务feign消费模式解决 com.netflix.client.ClientException: Load balancer does not have available server for client:xxx
    java正则去掉json字符串key的引号
    centos安装redis
  • 原文地址:https://www.cnblogs.com/Rong-Shengcom/p/4931196.html
Copyright © 2020-2023  润新知