C语言编程考试题 用随机函数产生并输出20个[10,99]的随机整数,输出其中大于这20个数的平均值的数。

如题所述

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
srand(time(0));
int i=0; //用于下面的循环
int a[20]={0}; //用于存储产生的20个随机数
double ave=0; //用于求20个随机数的和,为了求他们的平均数
for(i =0;i<=19;i++)
{
a[i]=rand()%90+10; //rand()%90产生0-89的随机数,加上10后就是10-99的随机数。
ave=ave+a[i];
printf("第%d个随机数是:\n",i+1,a[i]);
}
ave=ave/20;
for(i =0;i<=19;i++) //打印大于平均数值的随机数;
{
if(a[i]>ave)
{
printf("第%d个随机数等于%lf大于平均数%lf\n",i+1,a[i],ave)
}
}
return 0;
}
结果:
第1个随机数是:34
第2个随机数是:32
第3个随机数是:86
第4个随机数是:20
第5个随机数是:86
第6个随机数是:43
第7个随机数是:26
第8个随机数是:65
第9个随机数是:98
第10个随机数是:57
第11个随机数是:98
第12个随机数是:59
第13个随机数是:72
第14个随机数是:27
第15个随机数是:25
第16个随机数是:55
第17个随机数是:53
第18个随机数是:83
第。。。。。。。。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-20
#include <time.h>
#include <stdlib.h>
#include <stdio.h>

void main()
{
int a[20],sum=0;//数组a用来储存20个随机整数,sum用来表示随机生成的20个数的和
srand((unsigned)time(NULL)); //产生随机种子
printf("随机生成的20个数为:\n");
for(int i=0;i<20;i++)
{
a[i]=rand()%90+10; //随机数赋值给数组a,这个是从10-99,可以更改%后面的值。
sum+=a[i];
printf("%d\t",a[i]); //输出者20个整数
}
printf("\n");
printf("随机生成的20中其中大于其平均值的有:\n");
for(int j=0;j<20;j++)
if(a[j]>(sum/20))
printf("%d\t",a[j]);
}
第2个回答  2013-06-20
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define DIM    20
 
int main(int argc, char** argv )
{
 
    int iRand[DIM];

    int newDim = 0;
    float avg = 0.0f;
     
    srand (time(NULL));
 
    for ( int i = 0; i < DIM; ++i )
    {
        iRand[i] = rand() % 90 + 10;
    }
    for( int j = 0; j < DIM; ++j )
    {
        avg += iRand[j];
    }
    avg /= DIM;
printf("average of all is: %f\n", avg );
    for( int k = 0; k < DIM; ++k )
    {
        if ( iRand[k] > avg )
        {
printf("iRand[%d]\t=%10d\n", k, iRand[k]);
        }
    }
 

    return 0;
}

相似回答