编程基础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;
 }
posted @   #零下一度&  阅读(683)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
点击右上角即可分享
微信分享提示