cc++数组排序、计算平均值、、小值

cc++数组排序、计算平均值、、小值,第1张

cc++数组排序、计算平均值、、小值,第2张

最近发现很多帮助别人学习的问题。我将分析和思考数组和局部变量以及总驻留变量两个例子!
排序操作

#包括

voidsort(array,n)
int array[];
intn;
{
inti,j,k,t;
for(I = 0;I)/*循环9次,这里循环9次,因为排在第9次的已经自动排在最后*/
{
k = I;[/LIGHT]/* Record I for exchange */
for(j = I+1;)j/*在外部I循环中做第二个循环,检查所有剩余的元素*/
{
if(array[j])/*比较J循环中元素的大小和外部I循环中当前元素的值*/[br/]{
k = J;/*将k的值定义为J循环的最小元素的(下标),从而进行交换运算*/
}
t = array[k];/*将T的值定义为J循环的最小元素的值*/
array[k]= array[I];/*将J循环中的值(即array[j])改为外部I循环元素的值*/
array[I]= t;/*将外部I-loop的当前元素的值替换为T为临时存储的前一个值(即array[j])*/
}
}
main()
{
inta[10/*将a#包括定义为输入10个不同数字的数组;定义循环的粪便量I;*/
printf("输入数组\ n ");
for(I = 0;i{
scanf("%d ",& a[I]);/*用这10个循环给每个数组元素赋值从a[0]到a求平均值,求最小值。*/
}
排序(a,10);/*将数组A的每个数组元素的地址和数组号传递给自定义排序函数的形参*/
printf("已排序的数组:\ n ");
for(I = 0;i{
printf("%d ",a[I]);/*用10个周期打印屏幕上排序后的数组元素*/
}
printf(" \ n ");

}


此代码练习序列号。请注意,当数组名用作函数的实际参数时,数组的值不会传递给形参。

相反,实际参数数组的起始地址被传递给形参数组,这样两个数组共享一个内存单元,并且

不需要构建两个不同的数组,浪费内存空。

[9]

[10]

floatmax/*定义用于存储的全局变量max的数量*/
float min;/*定义常驻变量min来存储最小的数*/

main()
{
float count _ avg();/*声明自定义函数的数据类型*/
floatscore[10];/*定义一个数组来存储输入数字*/
floatscore _ avg;
inti;/*为循环定义变量I */
(I = 0;i{
scanf("%f ",& score);/*格式输入*/
}
score _ avg = count _ avg(score,10);/*调用count_avg函数计算平均值。实参中,
取数组分数、数组元素个数等地址*/
printf(" avg = % 6.2 fmax = % 6.2 fmin = % 6.2f ",score _ avg,max,min);/*在屏幕上打印平均值、数值、
最小值*/
}

Float count_avg (array,score _ num)/*将自定义函数count_avg的数据类型定义为float point */
float array[];/*定义形参数组[]。此数组是一个浮点*/
int score _ num;/*将形参score_num定义为正形,用于获取实参,即数组中的元素个数*/
{
inti;/*为循环定义变量I */
float sum = array[0];/*预先将总数的初始值设置为array[0]以方便后面的大小比较操作*/
float VG;/*定义avg,即绘制值存储变量为浮点*/

max = array[0];/*预置值的初始值为array[0]以便于后面的操作*/
min = array[0];/*预先将最小值的初始值设置为array[0],以便以后进行更小的运算*/

for(I = 1;I{
if(array>max) /*将存储的值与当前循环中的数组进行比较(查找最大的计算)*/
{
max = array;/*合格存储是值。注:(此处为循环判断通过反复比较运算
逐步替换值最终得到的数)*/
}
else if(array {
min = array;/*合格存储是最小值。注意:(此处最小值通过循环判断的反复比较运算逐渐被
代替)*/
}
sum+= array;/*计算数组元素的和*/
}

avg = sum/score _ num;/*计算最终平均*/
回报(avg);/*返回平均值*/
}


在这个例子中,需要注意的是,使用全局变量可以减少实参和形参的数量,从而减少内存空之间的时间开销,传输值数据。另外,C语言也规定了外部数组可以有丰富的初始值,而局部数组不能给初始值,所以不必要的时候建议不要使用全局变量,因为1:全局变量在程序执行的整个过程中都是占用存储单元的,而不是只在需要的时候才打开单元。2:降低了函数的通用性,因为函数在执行过程中依赖于其他外部变量。3:全局变量太多会降低程序的清晰度,很难清晰判断每个外部变量在每个瞬间的值。每个函数执行时,外部变量的值都会发生变化,导致程序出错!4.如果外部变量没有在文件的开头定义,它只能从定义点到文件的结尾。

你应该在学习中多注意细节。这些东西在Java中是类似的。希望他们对你有启发!

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » cc++数组排序、计算平均值、、小值

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情