可以在程序执行过程中对数组作动态赋值。这时可以用循环语句配合scanf 函数逐个对数组元素赋值。
【例7.2】找出数组中最大的元素。
运行结果:
程序讲解:
本例程序中第一个for语句逐个输入10 个整型数到数组a 中,然后把a[0]赋值给max。在第二个for语句中,从a[1]到a[9]逐个与max中的内容比较,若比max的值大,则把该数组元素的值赋给max,因此max 总是在已比较过的数组元素中的值为最大者。比较结束,输出max 的值。
【例7.3】对数组元素进行排序。
运行结果:
程序讲解:(www.xing528.com)
本例程序中用了两个并列的for 循环语句,在第二个for语句中又嵌套了一个循环语句。第一个for语句用于输入10 个元素的初值。第二个for语句用于排序。本程序的排序采用逐个比较的方法进行。在i次循环时,把第一个元素的下标i赋给p,而把该下标变量值a[i]赋给q。然后进入小循环,从a[i+1]起到最后一个元素为止逐个与a[i]做比较,有比a[i]大者则将其下标赋给p,元素值赋给q。一次循环结束后,p 即为最大元素的下标,q 则为该元素值。若此时i≠p,说明p,q值均已不是进入小循环之前所赋之值,则交换a[i]和a[p]之值。此时a[i]为已排序完毕的元素。输出该值之后转入下一次循环。对i+1 以后各个元素排序。
【例7.4】为比赛选手评分。
计算方法:从10 名评委的评分中扣除一个最高分,扣除一个最低分,然后统计总分,并除以8,最后得到这个选手的最后得分(打分采用百分制)。
运行结果:
程序讲解:
在本例程序中,一开始定义一个score 数组存放评委打分的分数,并设置最高分max=-1;最低分min=101。第一个for语句用于输入分数,并计算分数总和;第二个for语句用于找出10 个评委中评分最高的分数;第三个for语句用于找出10 个评委中评分最低的分数。"mark=(sum-min-max)/8.0;"用总分减去一个最高分和一个最低分,再除以8,得出选手的最后得分。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。