第一小题
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUM 2002
//第五题,第一小题
int main()
{
double ave;
int num[128],win[128];
int i,count=0,j=0;
int ran_m, ran_y, ran_d;
srand(time(0));
for (i = 0; i < 128; i++)
{
ran_y = rand() % 60 + 1950;//生成出生年份随机数,从1950年到2009年
ran_m = rand() % 12 + 1;//生成出生月份随机数1到12
ran_d = rand() % 30 + 1;//出生日期1到30,暂时不考虑大小月问题
num[i] = ran_y + ran_m + ran_d;
}
for (i = 0; i < 128; i++)
{
if (num[i] == NUM)
{
win[j] = i;
j++;
count++;
}
}
ave = NUM / count;
printf("共有%d名村民得奖,他们每人获得%.1f元\n", count, ave);
return 0;
}
第二题
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//第五题,第二小题
double fbs(double);
int main()
{
double ave,min;
int num[128],win[128];
int i,j=0,sum=0;
double temp;
srand(time(0));
for (i = 0; i < 128; i++)
num[i] = rand() % 1000 ;
for (i = 0; i < 128; i++)
sum += num[i];
ave = sum / 128;
min = 1000;
for (i = 0; i <= 128; i++)
{
temp = num[i] - ave;
if (fbs(temp) <= min)
min = fbs(temp);
}
for (i = 0; i < 128; i++)
{
temp = num[i] - ave;
if (fbs(temp) <= min)
{
win[j]=i;
j++;
}
}
printf("共有%d名村民获奖,", j);
for (i = 0; i < j; i++)
printf("第%d名村民、", win[i]+1);
return 0;
}
double fbs(double x)
{
double r;
r = (x >= 0 ? x : -x);
return r;
}

被折叠的 条评论
为什么被折叠?



