论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

数组(一维数组的使用)

文章类别:C语言程序设计 | 发表日期:2008-9-24 14:45:45

用一维数组计算多个数的平均值

    程序构思:先定义一个大小为20的浮点数组程序运行时先将数据加总变量初设为0,并输入数据。经过if选择语句来判定输入的数是否超过20,当输入小于20的时候,执行数据输入循环内的程序,否则执行输出“Please input a number less than 20"的消息。循环中的程序功能为读取用户输入的数据,并累加至Summary变量中。平均值的求法为数据总和除以数据个数。

void main()
{
    int max=0;
    int i;
    float number[20];
    float summary;
    float average;
    summary=0;
    printf("Please input the number of data:");
    scanf("%d",&max);
    if(max<=20)
    {
        for(i=0;i<max;i++)
        {
            printf("Please input a number:");
            scanf("%f",&number[i]);
            summary+=number[i];
        }
        average=summary/max;
        printf("The average is %5.2f\n",average);
    }
    else 
        printf("Please input a number less than 20.");
}

运行结果:
Please input the number of data: 5
Please input the number:13.5
Please input the number:170.4
Please input the number:65.45
Please input the number:84
Please input the number:20
The average is 70.67

用一维数组设计一个简易的员工工资治理系统(具有查询和修改功能)
程序构思:
    先默认一个大小为10的整数数组,并预先依员工编号设置出10 笔员工工资数据。
    利用一个while循环提供一个用户菜单供用户选择功能,第一项功能为查询员工数据,第二项功能为修改员工数据,第三项为结束系统。
    当用户选择为1或2时,先要求用户输入员工编号,程序再进行判定输入是否为正确的员工编号。正确时,则输出该员工的工资数据,错误时,则输出"##The error employee number!"。若用户选择为2时,则进一步要求用户输入修改过的新员工工数据,并将数据存回到该员工工资数据数组中。
void main()
{
    int employee[10]={27000,32000,32500,27500,28500,29000,
                        31000,32500,30000,26000};
    int index;
    int newsalary;
    int selection;

    while(1)
    {
        printf("==========================================");
        printf("=Simple Employee Salary Management System=\n");
        printf("=1.Display employee salary               =\n");
        printf("=2.Modify employee salary                =\n");
        printf("=3.Quit.                                 =\n");
        printf("==========================================\n");
        printf("Please input your choose:");
        scanf("%d",&selection);

        if(selection==1||selection==2)
        {
            printf("**Please input the employee number:");
            scanf("%d",&index);
            if(index<10)
            {
                printf("**Employee Number is %d.",index);
                printf("The Salary is %d\n",employee[index]);
            }
            else
            {
                printf("## The error employee number!\n");
                exit(1);
            }
        }
        switch(selection)
        {
            case 1:
                break;
            case 2:
                printf("** Please input new salary:");
                scanf("%d",&newsalary);
                employee[index]=newsalary;
                break;
            case 3:
                exit(1);
                break;
        }
     printf(}\n");

   }
}
运行结果:
===========================================
= Simple Employee Salary Management System=
= 1.Display employee salary               =
= 2.Modify employee salary                =
= 3.Quit                                  =
===========================================
Please input your choose:1
**Please input the employee number:5
**Employee Number is 5.The Salary is 29000
===========================================
= Simple Employee Salary Management System=
= 1.Display employee salary               =
= 2.Modify employee salary                =
= 3.Quit                                  =
===========================================
PLease input your choose:2
** Please input the employee number:5
** Employee is 5.The Salary is 29000
** Please input salary:30000
===========================================
= Simple Employee Salary Management System=
= 1.Display employee salary               =
= 2.Modify employee salary                =
= 3.Quit                                  =
===========================================
PLease input your choose:1
** Please input the employee number:5
** Employee is 5.The Salary is 30000

===========================================
= Simple Employee Salary Management System=
= 1.Display employee salary               =
= 2.Modify employee salary                =
= 3.Quit                                  =
===========================================
PLease input your choose:3

一维数组的遍历
运用一维数组的遍历可以查找一个数值是否存在于一维数组中。
程序实例:
    运用一维数组设计一个可存储员工资,然后输出员工编号的程序。
程序构思:
首先默认一个大小为10的整数数组,并预先依员工编号设置出10笔员工工资数据。
在for循环中判定当用户输入的工资等于数组中的内容时就输出数据,将计数器加1,并依序将每个数组中的数据都遍历比较一次。
程序最后再判定数据计数是否为零,表示找不到相符的工资数 ,若不为0,则输出共有几笔相符的数据。
void main()
{
    int employee[10]={27000,32000,32500,27500,28500,29000,
                        31000,32500,30000,26000};
    int salary;
    int counter=0;
    int i;
    printf("Please input the employee salary:");
    scanf("%d",&salary);
    for(i=0;i<10;i++)
        if(salary==employee[i])
        {
            printf("Number %d Employee's salsry is %d!\n",i,salary);
            counter++;
        }
    if(counter==0)
        printf("No employee's salary is %d!\n",salary);
    else
        printf("Have%d employees salary is %d!\n",counter,salary);
}
运行结果:
PLease input the employee salary :18500
No emploee's salary is 18500!

Please input the employee salary :27000
Number 0 Employee's salary is 27000!
Have 1employee salary is 27000!

Please input the employee salary:32500
Number 2 Employee's salary is 32500!
Number 7 Employee's salary is 32500!
Have 2 employee salary is 32500!

一维数组的高级应用(一个可容纳40位数的 n!的程序)
在求一个数的阶乘的时候,就是定义一个long型或 double型 也只能算到多少位
数,这个位数与机器的字长有关,16位、32 位、64位,假设要一个数的阶乘运算结果超过了64位数就没有办法了,这个问题可以用数组来解决。

程序构思:
    先声 明一个大小为40的数组,负责存储每一个位数的数据,变量digit为计算位数的变量,变量i,j,r,k为循环中所用的计数变量。首先将data数组中的数据做初化为零 ,再令第一位数值为1,位数也为1,再次将每次相乘的乘积存回数组中,并循环处理每个数组中超过10的数,若数值超过10,则将位数加1,原来的数除以10,商数加前一位的数值后回存到前一位数的数组中,再将余数存回原来位数的数组中。最后再输出每次计算后的结果。

void main()
{
    int data[40]; //存储位数的数组
    int digit; //数据位数变量
    int i,j,k,r; //循环计数变量
    int N; //输入的值

    for(i=1;i<40+1;i++) //初始化数组
        data[i]=0;
    data[0]=1;
    data[1]=1;
    digit=1;
    printf("Enter a number :");
    scanf("%d",&N); //读取n值

    for(i=1; i<N+1;i++)
    {
    for(j=1; j<digit+1;j++)
    data[j]*=i; //对数组中的内容运算
    for(j=1; j<digit+1;j++)
    {
    if(data[j] >10)
    {
        for(r=1; r<digit+1;r++)
        {
            if(data[digit] >10)
                digit++; //当数组中的值大于10则位数加1
            data[r+1]+=data[r] /10;
            data[r]=data[r]%10;
        }
    }
    }
    printf("%d!=", i ) ;
    for(k=digit;k>0;k--) //输出数组中的内容
    printf("%d",data[k]);
    printf("\n");
    }
}

视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程