1.从键盘输入10名学生的计算机程序设计的考试成绩,显示其中的最低分,最高分及平均成绩,要求使用指针实现以下函数功能。
1) 编写输入数据功能函数Input(),在主函数中调用。
2) 编写最低分功能函数Min(),在主函数中调用。
3) 编写最高分功能函数Max(),在主函数中调用。
4) 编写平均成绩功能函数Avg(),在主函数中调用。
#include <stdio.h>
void Input(int* a, int n)
{
int i;
for (i = 0; i < n; i++)
scanf_s("%d", a + i);
}
int Max(int* a, int n)
{
int i; int max = *a;
for(i=1;i<n;i++)
if(*(a+i)>max ) max=*(a+i);
return max;
}
int Min(int* a, int n)
{
int i,min=*a;
for (i = 1; i < n; i++)
if (*(a + i) < min)min = *(a + i);
return min;
}
float Avg(int* a, int n)
{
int i,s=0;
for(i=0;i<n;i++)
s+=*(a+i);
return (float)s / n;
}
int main()
{
int a[10];
Input(a, 10);
printf("最低分=%d\n",Min(a,10));
printf("最高分=%d\n",Max(a,10));
printf("平均分=%.1f\n",Avg(a,10));
return 0;
}
2.编程实现使用冒泡排序法对具有12个数组元素的一维整型数组array[12] = {96,35,12,58,78,90,587,21,0,-65,106,52}按照由大到小的排序进行排序,输出排序前后的数组,并查找90是否在该数组中,若再该数组中,输出90在该数组中的位置,否则输出“90不在数组array中”,要求:使用指针在函数中实现排序和查找的功能,在主函数中调用这两个函数。
#include <stdio.h>
void maopao(int* a);
void find(int* a);
int main()
{
int array[12] = { 96,35,12,58,78,90,587,21,0,-65,106,52 };
find(array);
maopao(array);
}
void maopao(int* a)
{
int i, j, n = 12, t;
for (i = 0; i <= n; i++)
{
for(j=0;j<n-i-1;j++)
if (*(a + j) < *(a + j + 1))
{
t = *(a + j);
*(a + j) = *(a + j + 1);
*(a + j + 1) = t;
}
}
for (i = 0; i < n; i++)
printf("%d", *(a + i));
}
void find(int* a)
{
int flag = 0,i,n = 12;
for (i = 0; i < n; i++)
{
if (*(a + i) == 90)
{
flag = i;
}
}
if (flag != 0)
printf("90在数组中,是array[%d]的值\n", flag);
else
printf("90不在数组array中\n");
}