c语言 输入10个学生5门功课成绩求:1每个学生的平均分;2每门功课的平均分;3计算平均方差

c语言 输入10个学生5门功课成绩求:1每个学生的平均分;2每门功课的平均分;3计算平均方差,第1张

#include<stdioh>

int main()

{

    float stu[10][5];

    float a[10];

    int i,j;

    float sum,ave;

    for (i=0; i<10; i++) {

        printf("输入第%d个学生成绩:",i+1);

        for (j=0; j<5; j++) {

            scanf("%f",&stu[i][j]);

        }

    }

    for (i=0; i<10; i++) {

        sum=0;

        for (j=0; j<5; j++) {

            sum=sum+stu[i][j];

        }

        printf("第%d个学生的平均分:%2f\n",i+1,ave=sum/5);

        a[i]=ave;

    }

    for (i=0; i<5; i++) {

        sum=0;

        for (j=0; j<10; j++) {

            sum=sum+stu[j][i];

        }

        printf("第%d科成绩平均分:%2f\n",i+1,ave=sum/10);

    }

    ave=0;

    for (i=0; i<10; i++) {

        ave=ave+a[i];

    }

    ave=ave/10;

    sum=0;

    for (i=0; i<10; i++) {

        sum=sum+(a[i]-ave)(a[i]-ave);

    }

    printf("平均方差:%f\n",sum/10);

    return 0;

}

输入输出数据测试:

输入第1个学生的成绩:44 66 33 55 22

输入第2个学生的成绩:88 44 88 34 66

输入第3个学生的成绩:24 77 44 88 33

输入第4个学生的成绩:56 33 56 67 78

输入第5个学生的成绩:54 44 23 55 66

输入第6个学生的成绩:23 45 54 22 16

输入第7个学生的成绩:55 88 77 55 99

输入第8个学生的成绩:77 57 98 76 98

输入第9个学生的成绩:77 86 47 84 87

输入第10个学生的成绩:100 100 100 99 99

第1个学生的平均分:4400

第2个学生的平均分:6400

第3个学生的平均分:5320

第4个学生的平均分:5800

第5个学生的平均分:4840

第6个学生的平均分:3200

第7个学生的平均分:7480

第8个学生的平均分:8120

第9个学生的平均分:7620

第10个学生的平均分:9960

第1科成绩平均分:5980

第2科成绩平均分:6400

第3科成绩平均分:6200

第4科成绩平均分:6350

第5科成绩平均分:6640

平均方差:364128357

//计算平均数,方差,标准差。

#include <stdioh>

#include <conioh>

#include <stdlibh>

#include <timeh>

#include <mathh>

#define N 100

void TongJi(double a[],int n,double aver,double vari,double stdDev){

 //对长度为n的数组a进行统计,统计其平均值aver、方差vari、标准差stdDev

 int i;

 double p,aver2;

 aver=00;

 for(p=a+(n-1);p>=a;--p){

  aver+=p;//累加各元素

  aver2+=(p)(p);//累加各元素的平方

 }

 aver/=n;//求平均值

 aver2/=n;//求平方的平均值

 vari=aver2-(aver)(aver);//计算方差

 stdDev=sqrt(vari);//计算标准差

}

int main(){

 double a[N],pj,fc,bzc;

 int i;

 srand(time(NULL));

 for(i=0;i<N;++i){

  a[i]=rand()/(RAND_MAX+10); //产生随机小数[0,1)

  printf("%lg ",a[i]);

 }

 TongJi(a,N,&pj,&fc,&bzc);

 printf("\nPingJun=%lg, FangCha=%lg, BiaoZhunCha=%lg",pj,fc,bzc);

 printf("\nFinished!\n");

 getch();

 return 0;

}

顺便做了一个测试:产生100个随机小数,得到其平均值大概在05左右,方差在008左右,标准差在028左右。说明系统自带的随机数发生器还是比较均匀的。

#include <iostream>

#include <vector>

#include <iterator>

#include <algorithm>

#include <mathh>

using namespace std;

typedef double DataType;

typedef vector<DataType> DataList;

DataType Average(DataList const & data_list)

{

size_t n;

DataType sum;

DataList::const_iterator ite = data_listbegin();

if ( ite == data_listend() ) return (DataType) 0;

n = data_listsize();

for (sum = ite++; ite != data_listend(); ite++)

{

sum += ite;

}

return sum / n;

}

DataType StdDev(DataList const & data_list)

{

size_t n;

DataType avg, var, diff;

DataList::const_iterator ite = data_listbegin();

if ( ite == data_listend() ) return (DataType) 0;

n = data_listsize();

avg = Average(data_list);

var = 0;

for (;ite != data_listend(); ite++)

{

diff = ite - avg;

var += diff diff;

}

return sqrt(var/n);

}

int main(int argc, char argv)

{

DataList data_list;

DataType min=0, max=0, avg=0, dev=0, ele;

while ( cingood() && cinpeek() != '\n') {

cin >> ele; data_listpush_back(ele);

}

min = min_element(data_listbegin(), data_listend());

max = max_element(data_listbegin(), data_listend());

avg = Average(data_list);

dev = StdDev(data_list);

coutprecision(4);

coutsetf(ios::fixed, ios::floatfield);

cout << "Min: " << min << endl

<< "Max: " << max << endl

<< "Average: " << avg << endl

<< "Standard deviation: " << dev << endl;

coutunsetf(ios::floatfield);

return 0;

}

以上就是关于c语言 输入10个学生5门功课成绩求:1每个学生的平均分;2每门功课的平均分;3计算平均方差全部的内容,包括:c语言 输入10个学生5门功课成绩求:1每个学生的平均分;2每门功课的平均分;3计算平均方差、用c语言定义一个函数,计算平均数,方差,标准差。(请用指针完成)、如何用C++或C编写求MAX,MIN,平均值,均方差等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10099736.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存