1、題目
在[0,100]範圍生成10個隨機種子為824的學生成績。請你設計子函數實現指針法統計低於均分的情況。
要求:
- 1、使用子函數:void GetScore(int p, float avg, int* num) //p是指向原成績數組的指針,avg存儲均分,num指針存儲低於均分人數。
- 2、使用指針法處理數據在子函數中實現統計,不允許在子函數中輸出
-
3、主函數中輸出,輸出分三行:
- 第一行輸出原始成績
- 第二行輸出均分及低於均分總個數
- 第三行輸出低於均分的成績,保留一位小數
示例:
輸出:2 78 1 8 43 57 52 54 9 69
avg=37.3 num=4
2 1 8 9
2、完整代碼
#include<stdio.h>
#include<stdlib.h>
void GetScore(int* b, float* avg, int* num)
{
int i;
*num = 0;
*avg = b[0];
for (i = 0; i < 10; i++) {
*avg += b[i];
}
*avg = *avg / 10;
for (i = 0; i < 10; i++) {
if (*avg >= b[i])
*num += 1;
}
}
void main()
{
int a[10], num;
float avg;
//種子824
srand(824);
for (int i = 0; i < 10; i++)
{
// 0-100隨機數
a[i] = rand() % 101;
printf("%d ", a[i]);
}
GetScore(a, &avg, &num);
printf("\navg=%.1f num=%d\n", avg, num);
for (int i = 0; i < 10; i++)
{
if (a[i] < avg)
printf("%d ", a[i]);
}
}