有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。要求:(1)定义函数move()来实现前面各数顺序向后移m个位置,最后m个数变成最前面的m个数,在主函数里实现数据的输入和输出;(2)在move()中,用数组array来保存数据,数据的顺序向后移动的完成,首先把数组最后一个数据array[n+1]保存在临时变量array_end中,移动数据时,采用指针变量p来实现,通过指针变量首先指向数组中需要移动的最后一个数据(p=array+n-1),把其前面数据*(p-1)的覆盖该数据*p,循环下去,不断改变指针变量的指向,就实现了数组的整体向下移动一个位置,然后在把保存在临时变量array_end中的数据在赋值给数组的第一个空间*array=array_end。这样就完成了数据顺序向后移动1个位置,最后1个数变成最前面的1个数;(3)如果要使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数, 对于该功能的实现则采用递归算法,即把移m个位置这个大问题,分解为移动m-1个位置小问题,这样问题逐渐分解下去,直到递归结束条件m<0成立为止。例如:输入n=10,m=3,10个数分别为4 6 8 7 5 3 2 1 9 10,移动后为:1 9 10 4 6 8 7 5 3 2
3个学生各学4门课,计算总平均分,并输出第n个学生成绩,要求:void average(float *p,int n);函数计算n个学生的平均成绩,void search(float (*p)[4],int n);函数输出第n个学生的成绩。三个学生4门课的成绩为:65,67,79,6080,87,90,8190,99,100,98