- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
输入 4 个整数,并以逆序输出。;;第6章 数组;一个人N门课的成绩怎样存储和处理?
一个班N门课的成绩怎样存储和处理?......;6.1 一维数组;以下数组定义是正确的:
#define N 10
……
float score1[N], score2[N];
int num[10+N];
char c[26];;数组在内存的存放:;例如:输入学生成绩
for(i=0;i5;i++)
scanf(%f,score[i]);;说明:
① 下标从0开始(下界为0),数组的最大下标(上界)是数组长度减1。
例如:
int a[10];
scanf (%d,a[10]); /* 下标越界 */; ② [ ]是下标运算符,引用数组???素时,根据数组的首地址和下标值,计算出该元素的实际地址,取出该地址的内容进行操作。;初始化:在定义数组时给数组元素赋初值。;【例6.1】将10个人的成绩输入计算机后按逆序显示。
#define N 10
main( )
{ int i; float score[N];
for (i=0; iN; i++)
scanf(%f,score[i]);
for (i=N-1; i=0; i--)
printf(%6.1f,score[i]);
} ;【例6.2】 读10个整数存入数组,找出其中最大值和最小值;【例6.3】 用数组求Fibonacci数列前20个数;【例6.4】冒泡法排序(从小到大)。;第二趟排序情况如下: 3 5 6 7 0 8
第一次 3和5比较,不交换 3 5 6 7 0 8
第二次 5和6比较,不交换 3 5 6 7 0 8
第三次 6和7比较,不交换 3 5 6 7 0 8
第四次 7和0比较,交换 3 5 6 0 7 8
在第二趟排序中,最大数8不用参加比较,其余的5个数比较了4次,把其中的最大数7排在最后,排出7 8。
以此类推: 第三趟比较3次,排出 6 7 8
第四趟比较2次,排出 5 6 7 8
第五趟比较1次,排出 3 5 6 7 8
最后还剩下1个数0,不需再比较,得到排序结果:
0 3 5 6 7 8;从上述过程可以看到:n个数要比较n-1趟,而在第j趟比较中,要进行n-j次两两比较。;#define N 6
main( )
{
int a[N]; int i,j,t;
for (i=0; iN; i++)
scanf(%d,a[i]);
for (j=1; j=N-1; j++) /*控制比较的趟数 */
for (i=0; iN-j; i++) /*两两比较的次数 */
if (a[i]a[i+1])
{ t=a[i];a[i]=a[i+1];a[i+1]=t; }
……
};以6个数:3、7、5、6、8、0为例。
思路:
第一趟:将第一个数依次和后面的数比较,如果后面的某数小于第一个数,则两个数交换,比较结束后,第一个数则是最小的数。
第二趟:将第二个数依次和后面的数比较,如果后面的某数小于第二个数,则两个数交换,比较结束后,第二个数则是次小的数;…… 。;选择法排序;#define N 5
main( )
{
int a[N]; int i, j, t ;
for (i=0; iN; i++)
scanf(%d,a[i]);
for (j=0; jN-1; j++) /*确定基准位置 */
for(i=j+1; iN; i++)
if (a[j]a[i])
{ t=a[j];a[j]=a[i];a[i]=t; }
…
} ;作 业
原创力文档


文档评论(0)