作业帮 > 综合 > 作业

随机产生100个元素的一维数组a和10X10的二维数组b,求a,b数组的最大值,最小值,均值,总和.

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/04/28 15:40:09
随机产生100个元素的一维数组a和10X10的二维数组b,求a,b数组的最大值,最小值,均值,总和.
随机产生100个元素的一维数组a和10X10的二维数组b,求a,b数组的最大值,最小值,均值,总和.
#include
#include
void main()
{
\x05int i,j;
\x05float suma,sumb;
\x05float avga,avgb;
\x05int maxa,maxb;
\x05int mina,minb;
\x05int a[100];
\x05int b[10][10];
\x05unsigned seed;
\x05printf("please input seed:");
\x05scanf("%d",&seed);
\x05srand(seed);
\x05suma = 0.0;
\x05for(i = 0; i < 100; i++)
\x05{
\x05\x05a[i] = rand() % 100;
\x05\x05suma += a[i];
\x05}
\x05avga = suma / 100.0;
\x05sumb = 0.0;
\x05for(i = 0; i < 10; i++)
\x05\x05for(j = 0; j < 10; j++)
\x05\x05{
\x05\x05\x05b[i][j] = rand() % 100;
\x05\x05\x05sumb += b[i][j];
\x05\x05}
\x05\x05avgb = sumb / 100.0;
\x05mina = maxa = a[0];
\x05minb = maxb = b[0][0];
\x05for(i = 0; i < 100; i++)
\x05{
\x05\x05if(mina > a[i])
\x05\x05\x05mina = a[i];
\x05\x05if(maxa < a[i])
\x05\x05\x05maxa = a[i];
\x05}
\x05for(i = 0; i < 10; i++)
\x05\x05for(j = 0; j < 10; j++)
\x05\x05{
\x05\x05\x05if(minb > b[i][j])
\x05\x05\x05\x05minb = b[i][j];
\x05\x05\x05if(maxb < b[i][j])
\x05\x05\x05\x05maxb = b[i][j];
\x05\x05}
\x05\x05printf("数组a的最大值是%d,最小值是%d,均值是 %.3f\n,总和是%.3f\n\n",maxa,mina,avga,suma);
\x05printf("数组b的最大值是%d,最小值是%d,均值是 %.3f\n,总和是%.3f\n\n",maxb,minb,avgb,sumb);
}
再问: 怎么不是随机产生100个数?
再答: 肯定是啊,只是上面没有输出来而已seed 是随机数种子,你每次输入一个随机数种子就会出现不同的值,结果也会不同
再问: 可不可以不要那个seed,直接运行就出现答案,而不是输入一个随机种子才出现,不好意思啊,我是初学者,准备考期末考,好多都不知道啊,期末考要把整个程序解析一遍给老师啊。求助啊。
再答: 不要那个seed 就会出现固定的结果,要想出现随机的结果,就必须要,我帮你解释一下呗 前面哪些定义的就不说了,就一个是随机数,不是人工输入的随机数种子,说是随机数,却每次都是同样的数字,求平均值,就先求总和,然后除以个数,后面是先将数组的第一个值赋给最大值和最小值,然后让数组里的每一个元素与之比较,遇到比最大值大的,就将那个值赋给最大值,一直到之后一个,得出的就是最大值,最小值的求法刚好相反