#include <stdio.h>
#include <stdlib.h>
double statistics(int *score,int num,int *maxId,int minId);
int main()
{
int score[200],num,maxId,minId;
double average;
scanf("%d",&num);
FILEfp;
fp=fopen("成绩.txt","r");
for(int i=0;i<num;i++)
{
fscanf(fp,"%d",&score[i]);
}
fclose(fp);
statistics(&score[200],num,&maxId,&minId);
printf("%d %d %lf",maxId,minId,average);
return 0;
}
double statistics(int *score,int num,int *maxId,int *minId)
{
int sum=0;
double average;
*maxId=score[0];
*minId=score[0];
for(int i=0;i<num;i++)
{
if(*maxId<=score[i])
*maxId=score[i];
}
for(int i=0;i<num;i++)
{
if(*minId>=score[i])
*minId=score[i];
}
for(int i=0;i<num;i++)
{
sum+=score[i];
}
average=sum/num;
return average;
}
SOS,帮我看看吧,不知道哪里错了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qzjhjxj 2022-05-15 00:46关注
修改如下,供参考:
#include <stdio.h> #include <stdlib.h> double statistics(int *score,int num,int *maxId,int *minId); int main() { int i,score[200],num,maxId,minId;//修改 double average; scanf("%d",&num); FILE* fp; fp=fopen("成绩.txt","r"); if(fp != NULL) { //修改 for(i=0;i<num;i++) if(fscanf(fp,"%d",&score[i]) != 1) break;//修改 fclose(fp); average = statistics(score,i,&maxId,&minId);//修改 //statistics(&score[200],num,&maxId,&minId); printf("%d %d %lf",maxId,minId,average); } else printf("Open file fail!\n");//修改 return 0; } double statistics(int *score,int num,int *maxId,int *minId) { int sum=0; double average=0; *maxId=score[0]; *minId=score[0]; for(int i=0;i<num;i++) //修改 { if(*maxId < score[i]) //修改 *maxId=score[i]; if(*minId > score[i]) //修改 *minId=score[i]; sum+=score[i]; } if(num != 0) //修改 average=(double)sum/num; //修改 return average; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘