c语言问题求教

 我来答
mr_shj
2018-06-11 · TA获得超过2681个赞
知道大有可为答主
回答量:1665
采纳率:94%
帮助的人:1374万
展开全部
#define N 150
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int readdata(char *filename,int a[],int n){  //读文件数据 
FILE *fp;
int i;
if ((fp=fopen(filename,"r"))==NULL){
printf("无法打开文件%s\n",filename);
exit(0);
}
for(i=0;i<n;i++)
fscanf(fp,"%d",&a[i]);
fclose(fp);
}

double average(int a[],int n){   //平均 
int sum=0,i;
for(i=0;i<n;i++) sum+=a[i];
return 1.0*sum/n;
}
double bzc(int a[],int n){  //标准差 
double avg,sum=0;
int i;
avg=average(a,n);
for(i=0;i<n;i++)
sum+=(a[i]-avg)*(a[i]-avg);
return sqrt(sum/n);
}
int jigers(int a[],int n,int x){  //及格人数统计,大于等x为及格 
int i,sum=0;
for(i=0;i<n;i++) 
if (a[i]>=x) sum++;
return sum;
}

void savedata(char *filename,int a[],int n,int jg){  //向文件输出信息 
FILE *fp;
if ((fp=fopen(filename,"w"))==NULL){
printf("无法打开文件%s\n",filename);
exit(0);
}
fprintf(fp,"平均分是%.2lf\n",average(a,n));  //计算存储平均分 
fprintf(fp,"标准差是%.2lf\n",bzc(a,n)); //计算存储标准差 
fprintf(fp,"及格人数是%d\n",jigers(a,n,jg)); //计算存储及格人数 
fclose(fp);
}

int main(){
int a[N],jg=60; //60分以上算及格 
readdata("d:\\data.txt",a,N); //读取文件记录 
printf("平均分是%.2lf\n",average(a,N));  //计算显示平均分 
printf("标准差是%.2lf\n",bzc(a,N)); //计算显示标准差 
printf("及格人数是%d\n",jigers(a,N,jg)); //计算显示及格人数 
savedata("d:\\Analysis.txt",a,N,jg); //保存信息 
}
更多追问追答
追问
主函数胸为什么要int jgrs呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式