离散课件- lzl 07数组.pptx

  1. 1、本文档共105页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第7讲数组;主要内容;7.1数据结构与数组的概念;例:求任意100个数中的最大值。

main()

{inti,a,max;

max=-32768;

for(i=1;i=100;i++)

{scanf(“%d”,a);

if(amax)max=a;

}

printf(“\nmax=%d”,max);

}

用一个简单变量作为数据结构,合理,算法简单;对于三个数的排序:

main()

{inta,b,c,t;

scanf(“%d,%d,%d”,a,b,c);

if(ab){t=a;a=b;b=t;}

if(ac){t=a;a=c;c=t;}

if(bc){t=b;b=c;c=t;}

printf(“\n%d,%d,%d”,a,b,c);

}

对于很多个数的排序用变量会很复杂而用数组会使算法很简单。;7.2一维数组的定义和引用;;引用

1、先定义,后使用。

2、引用方法:逐个引用其元素,不能进行整体引用。

3、引用形式:数组名[下标]下标可为整、字符型的常量、变量或表达式。

如:a[0]=50;a[1]=100;a[2]=a[0]+a[1];

与a2=a0+a1有根本性的区别:下标可变。;例:从键盘输入10个数。

(1)用变量:(不方便)

scanf(“%d%d%d%d%d%d%d%d%d%d”,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9);

(2)用数组:(灵活方便)

for(i=0;i10;i++)

scanf(“%d”,a[i]);

用循环控制输入个数和下标的变化。;例:对数组a顺序赋值,逆序输出

main()

{inta[5];

for(i=0;i=4;i++)

a[i]=i;

for(i=4;i=0;i--)

printf(“a[%d]=%d\t”,i,a[i]);

}运行结果:a[4]=4a[3]=3a[2]=2a[1]=1a[0]=0;初始化;应用举例;main()

{inti,a[100],max,min;

floataver=0;

for(i=0;i100;i++)scanf(“%d”,a[i]);

max=a[0];min=a[0];

for(i=0;i100;i++)

{if(a[i]max)max=a[i];

if(a[i]min)min=a[i];

aver+=a[i];

}

aver/=100;

printf(“\n%d,%d,%f”,max,min,aver);

};(2)统计高于平均分的人数;main()用数组;(3)对10个学生的分数按从小到大的顺序排序后输出。三种典型的排序算法:交换法、选择法和冒泡法;;18;19;交换排序法;交换排序法;main()

{

inti,j,t,a[10]={5,8,7,4,3,9,0,1,2,6};

for(i=0;i9;i++)

{

for(j=i+1;j10;j++)

{

if(a[i]a[j])

{

t=a[i];a[i]=a[j];a[j]=t;

}

}

}

for(j=0;j10;j++)printf(%3d,a[j]);

};;24;25;26;27;选择排序法;1.选择排序法;main()

{

inti,j,t,max=0,a[10]={5,8,7,4,3,9,0,1,2,6};

for(i=0;i9;i++)

{

max=i;

for(j=i+1;j10;j++)

if(a[max]a[j])max=j;

if(max!=i){

t=a[i];a[i]=a[max];a[max]=t;}

}

for(j=0;j10;j++)p

文档评论(0)

lzjbook118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档