想问下这个程序怎么写

编写一个可以执行以下操作的C程序:

  1. 在2.0和10.0之间创建5个随机实数。2.显示5个随机实数四舍五入到小数点后2位。3. 计算下列各项:平均值,标准差(表达式如下)。
  2. 在屏幕上显示每一次计算的结果。
  3. 计算5个随机实数内2个连续数的最大和。
  4. 显示最大和。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main()
{
    float a[5],sum=0,avg,fz=0;
    srand(time(NULL));
    for(int i=0;i<5;i++)
    {
        a[i] = (rand()%8000)/1000.0+2;
        printf("%.2f\n",a[i]);
        sum += a[i];
    }
    avg = sum/5;
    printf("平均值:%.2f\n",avg);
    sum = 0;
    for(int i=0;i<5;i++)
        sum += (a[i]-avg)*(a[i]-avg);
    fz = sqrt(sum/5);
    printf("标准差:%.2f\n",fz);
    sum = 0;
    for(int i=0;i<4;i++)
    {
        if(a[i]+a[i+1] > sum)
            sum = a[i]+a[i+1];
    }
    printf("相邻两数最大和:%.2f\n",sum);
    return 0;
 
}
 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main()
{
    // 随机数种子
    srand((unsigned int)time(NULL));
 
    float a[5];
    for (int i = 0; i < 5; i++)
    {
        //生成随机数取余0~799
        a[i] = (rand() % 800) / 100.0 + 2;
        printf("%.2f ", a[i]);
    }
 
    float sum = 0;
    for (int i = 0; i < 5; i++)
    {
        sum += a[i];
    }
    float avg = sum / 5;
    printf("\n平均值:%.2f", avg);
 
    float fz = 0;
    for (int i = 0; i < 5; i++)
        fz += (a[i] - avg) * (a[i] - avg);
    fz = sqrt(fz / 5);
    printf("\n标准差:%.2f", fz);
 
    sum = 0;
    for (int i = 0; i < 4; i++)
    {
        float temp = a[i] + a[i + 1];
        if (temp > sum)
            sum = temp;
    }
    printf("\n相邻两数最大和:%.2f\n", sum);
    
    return 0;
}

 
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
 
    float a[5];
    int i;
    float avg;
    float standardDev;
    float max=0.0;
    //1、生产5个2.0~10.0的随机数
    //rand()%8:表示生产0-7的随机数
    //rand()%10/10.00:表示生产0.0-0.9的随机数
    //rand()%10/100.00:表示生产0.00-0.09的随机数
    for(i=0;i<5;i++){
        a[i]=rand()%8+2.0+rand()%10/10.00+rand()%10/100.00;
    }
    //2、输出随机数
    for(i=0;i<5;i++)
    {
        printf("%.2f ",a[i]);
    }
    printf("\n");//换行
    //3、求平均数
    for(i=0;i<5;i++)
    {
        avg+=a[i];
        if(i==4)
        {
            avg=avg/5.00;
            printf("平均数为:%.2f\n",avg);
        }
    }
    //4、求标准差
    for(i=0;i<5;i++)
    {
       standardDev+=pow(a[i]-avg,2);
       if(i==4)
        {
            standardDev=sqrt(standardDev/5.00);
            printf("标准差为:%.2f\n",standardDev);
        }
    }
    //5.计算5个随机实数中两个连续数的最大和
     for(i=1;i<5;i++)
    {
       if(a[i-1]+a[i]>max){max=a[i-1]+a[i];}
    }
    printf("两个连续数的最大和为:%.2f\n",max);
    return 0;
}

img

解答如下

img

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main()
{
    int n=5;
    float t[n];
    float sum = 0;
    srand(time(NULL));
    for (int i = 0; i < n; i++)
    {
        t[i] = rand() % 80/ 10.0 + 2;
        sum += t[i];
        printf("%.1f ", t[i]);
    }
    float avg = sum / n;
    printf("\n平均值:%.1f", avg);
    float bzc = 0;
    for (int i = 0; i < n; i++)
        bzc += (t[i] - avg) * (t[i] - avg);
    bzc = sqrt(bzc / n);
    printf("\n标准差:%.2f", bzc);
 
    float max = 0;
    int p=0;
    for (int i = 0; i < n-1; i++)
    {
        float temp = t[i] + t[i + 1];
        if (temp > max)
        {
            max = temp;
            p=i;
        }
    }
    printf("\n相邻两数(%.1f,%.1f)最大和:%.1f\n",t[p],t[p+1],max);
    return 0;
}