如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
..整理版整理版.整理版•一个班学生的学习成绩•一行文字•一个矩阵这些数据的特点是:1.具有相同的数据类型2.使用过程中需要保留原始数据C语言为这些数据,提供了一种构造数据类型:数组。所谓数组就是一组具有相同数据类型的数据的有序集合。一维数组及其应用例1:一维数组元素赋值及输出练习.main(){inti,a[10];/*定义数组整型数组a,它含有十个元素。*/for(i=0;i<=9;i++)a[i]=i;/*通过for循环依次为数组a中的每个元素赋值。*/for(i=9;i>=0;i--)/*通过for循环依次输出数组a中的每个元素的值。*/printf("%3d",a[i]);/*请注意输出元素的顺序*/}运行结果:9876543210总结:程序使a[0]到a[9]的值为0~9,然后按逆序输出。例2:用数组来处理求Fibonacci(菲波那契)数列问题,求出前40个数并以每行4个数输出。Fibonacci数列:F1=1n=1F2=1n=2Fn=Fn-1+Fn-2n≥3即:11235813。。。#include<stdio.h>main(){inti;longf[40]={1,1};/*定义长整型数组f存放40个Fibonacci数,对第一个和第二个元素先赋初值1*/for(i=2;i<40;i++)/*从第三个元素起分别利用前两个元素求和得到其值*/f[i]=f[i-2]+f[i-1];for(i=0;i<40;i++)/*利用循环依次输出40个数*/{if(i%4==0)printf("\n");/*每输出4个数输出一个换行符*/printf("%16ld",f[i]);/*要注意长整型数据的输出格式控制符的写法*/}}运行结果:例3:找一批数中的最大值main(){inti,max,a[10];printf("input10numbers:\n");//输入提示信息“请输入10个数”for(i=0;i<10;i++)scanf("%d",&a[i]);//输入10个数到数组中max=a[0];for(i=1;i<10;i++)if(a[i]>max)max=a[i];//从数组中找最大的数赋值给maxprintf("maxmum=%d\n",max);//输出max的值}运行结果:input10numbers:8294563716maxmum=9例4:冒泡法排序(从小到大排序)思路:将相邻两个数进行比较,将小的调到前头。若n个数比较,要比较n-1趟,用j表示趟数,则第j趟要比较n-j次。main(){inta[11];inti,j,t;printf(“input10numbers:\n”);for(i=1;i<11;i++)scanf(“%d”,&a[i]);printf(“\n”);for(j=1;j<=9;j++)for(i=1;i<=10-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}Printf(“thesortednumbers:\n”);for(i=1;i<11;i)printf(″%d″,a[i]);printf(″\n″);}/*程序结束*/运行结果:Input10numbers:10481265-76100-45123Thesortednumbers:-76-4501481281265100123本程序中,第一个for循环,是表示要循环的趟数,第二个for循环,是表示每一趟里面循环的次数。例5:有一个已经排好序的数组,今输入一个整数,要求按原来排序的规律将它插入数组中。为了把一个数按大小插入已排好序的数组中,应首先确定排序是从大到小还是从小到大进行的。假设排序是从大到小进行的,则可把欲插入的数与数组中各数逐个比较,当找到第一个比插入数小的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素i即可。如果被插入数比所有的元素值都小则插入最后位置。main(){inti,j,p,q,s,n,a[11]={320,260,258,154,68,57,45,16,8,2};for(i=0;i<=10;i++)printf("%d",a[i]);/*先输出原始排好序的数据序列*/printf("\nInputanumber:\n");scanf("%d",&n);/*输入一个数插入到序列中*/if(n<a[9])a[10]=n;else