编程基础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 @ 2015-03-15 21:01  #零下一度&  阅读(652)  评论(0编辑  收藏  举报