学生人数首先作为年级数据输入,然后是0到100的成绩(整数数据)。
创建一个程序来计算所输入成绩的总分、平均分和标准差。 学生人数不超过100人。
如果数据为xi,数据数量为n,则通过以下公式得到平均数x和标准差σ。
#include<stdio.h>
#include<math.h>
int main()
{
int num,a[100],sum=0;
float ave,bzx;
printf("输入人数:");
scanf_s("%d", &num);
printf("输入成绩(空格隔开):");
for (int i = 0; i < num; i++)
{
scanf_s("%d", &a[i]);
sum += a[i];
}
ave = (double)sum / num;
for (int i = 0; i < num; i++)
bzx = pow((double)a[i] - ave, 2);
bzx = sqrt(bzx / num);
printf("总分=%d\n", sum);
printf("平均数=%f\n", ave);
printf("标准差=%f\n", bzx);
return 0;
}
你可以参考一下,希望采纳支持一下博主呀
#include <stdio.h>
#include <math.h>
int main()
{
int n;
printf("请输入学生人数:\n");
scanf("%d", &n);
int i, arr[100], sum = 0;
printf("请输入学生成绩(空格间隔):\n");
for (i = 0; i < n; i++) {
scanf("%d", &arr[i]);
sum += arr[i];
}
printf("总分为:%d\n", sum);
double aver = sum * 1.0 / n;
printf("平均分为:%.2f\n", aver);
double var = 0,standard = 0;
for (i = 0; i < n; i++) {
var += pow(arr[i] - aver, 2) / n; //求方差
}
//求标准差
standard = pow(var, 0.5);
printf("标准差为:%f\n", standard);
return 0;
}
运行结果:
公式都有了。。。自己写一个循环算呗。。。
这就是个翻译,自己练练吧
#include<stdio.h>
#include<math.h>
int N=100;
int main()
{
int a[N];
int i=0,j=0,sum=0,n;
double x=0,q=0;
scanf("%d",&n);
while(i<n)
{
scanf("%d",&a[i]);
sum+=a[i];//求总分
i++;
}
x=sum*1.0/n;//求平均分
while(j<n)
{
double k=a[j]-x;
q+=pow(k,2);
j++;
}
q=q/n;
q=sqrt(q);//求标准差
printf("%d,%lf,%lf",x,q);
return 0;
}可以参考一下,如果有帮助的话请采纳一下谢谢
#include<stdio.h>
#include<math.h>
int calcusum(int t[],int n)
{
int sum=0;
for(int i=0; i<n; i++)
sum+=t[i];
return sum;
}
double calcuave(int t[],int n)
{
double sum=(double)calcusum(t,n);
return sum/n;
}
double calcubzc(int t[],int n)
{
double ave=calcuave(t,n);
double sum=0;
for(int i=0; i<n; i++)
sum+=(t[i]-ave)*(t[i]-ave);
return sqrt(sum/n);
}
int main()
{
int score[100];
int n;
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%d",&score[i]);
int sum=calcusum(score,n);
double ave=calcuave(score,n);
double bzc=calcubzc(score,n);
printf("总分:%d 平均数:%lf 标准差:%lf",sum,ave,bzc);
return 0;
}