文档详情

重庆邮电大学计算机科学与技术学院.ppt

发布:2025-05-16约2.98千字共29页下载文档
文本预览下载声明

重庆邮电大学计算机科学与技术学院

冯潇

;数组的定义、引用、初始化和输出

和数组有关的经典算法

冒泡法、选择法、折半查找法、求集合中最大或最小的元素

向函数传递一维数组;重点、难点;假设集合中有班上30个同学的高数成绩,找出高数成绩的最高分,并将最高分打印到屏幕上

算法分析:

定义变量存放全班30个同学的高数成绩,定义变量MaxScore,初值为0

……

MaxScore=元素1;/*假设集合中第一个元素值最大*/

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

{

if(元素iMaxScore)MaxScore=元素i

};保存大量同类型的相关数据

如矩阵运算,表格数据等;数组的定义;数组元素的引用;全部赋初值

charch[4]={‘h’,’a’,’l’,’\0’};

intarr[]={3,7,5,8};

局部赋初值

floatf[10]={1.7,2.1};

二维数组的初始化

inta[2][3]={1,2,3,4,5,6};

inta[][3]={{1,2,3},{4,5,6}};

inta[][3]={{1,2},{4}};;数组的物理存储结构;只能逐个对数组元素进行操作〔字符数组例外〕;用法一:求表达式计算结果类型所占用的字节数

sizeof(表达式)

inta=5;

sizeof(a+5);

用法二:求某种类型所占用的字节数

sizeof(数据类型名)

x=sizeof(double)+2;

printf(“%d”,x);

;#includestdio.h

#defineARR_SIZE30

intmain()

{

intscore[ARR_SIZE]={0},MaxScore=0,i;

printf(Pleaseenterscores:);

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

{

scanf(%d,score[i]);

};MaxScore=score[0];/*假设第一个元素是最大值*/

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

{

if(MaxScorescore[i])

{

MaxScore=score[i];

}

}

printf(MaxScore=%d\n,MaxScore);

return0;

}

;打印出成绩为100分同学的学号;折半查找;……

intmain()

{

intscore[ARR_SIZE]={0},i;

intlow,high,mid;

printf(Pleaseenterscores:);

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

{

scanf(%d,score[i]);

}

printf(Pleaseenterthesearchingnumber:);

scanf(%d,num);;low=0;

high=ARR_SIZE-1;

while(low=high)

{

mid=(low+high)/2;

if(numscore[mid])

high=mid-1;

elseif(numscore[mid])

{low=mid+1;}

else

{printf(No%d,mid);}

}

return0;

};按从高到低的分数对全班同学的成绩进行排序

算法:

冒泡法

选择法;核心思想

将相邻元素进行比较,较小〔较大〕的放在前面

;……

intmain()

{

intscore[ARR_SIZE]={0},i,j,temp;

……

for(i=0;iARR_SIZE-1;i++)

{

for(j=0;jARR_SIZE-i;j++)

{

if(score[j]score[j+1])

{temp=score[j];score[j]=score[j+1];score[j+1]=temp;}

}

}

……

return0;

};

显示全部
相似文档