#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 判断数组中有没有某个数
int contains(int array[], int number, int count);
int main(void) {
/*
* 需求:生成10个1~100之间的随机数存入数组,要求数据不能重复
* 1) 求出所有数据的和
* 2) 求所有数据的平均数
* 3) 统计有多少个数据比平均数小
* */
srand(time(NULL));
int arr[10] = {0};
int len = sizeof(arr) / sizeof(arr[0]);
int sum = 0;
double average;
int counter = 0;
// 求所有数据的和
for (int i = 0; i < len; i++) {
// 判断数据是否重复
int temp = rand() % 100 + 1;
if (contains(arr, temp, i) == 0) {
arr[i] = temp;
} else {
i--;
continue;
}
sum += arr[i];
printf("%d ", arr[i]);
}
/*
for (int i = 0; i < len; ) {
// 判断数据是否重复
int temp = rand() % 100 + 1;
if (!contains(arr, temp, i)) {
arr[i] = temp;
i++;
}
sum += arr[i];
printf("%d ", arr[i]);
}
* */
// 求所有数据的平均数
average = 1.0 * sum / len;
printf("\nsum = %d, average = %.1lf\n", sum, average);
// 统计有多少个数据比平均数小
for (int i = 0; i < len; i++) {
if (arr[i] < average) {
counter++;
printf("%d ", arr[i]);
}
}
printf("\n这%d个数据比平均数%.1lf小\n", counter, average);
return 0;
}
int contains(int array[], int number, int count) {
int is = 0;
for (int i = 0; i < count; i++) {
if (number == array[i]) {
is++;
break;
}
}
return is;
}