计科黄华军 2021-06-20 00:13 采纳率: 100%
浏览 25
已采纳

为什么执行2时,输出的是三个0呀?

#include"stdio.h"

#include"stdlib.h"

FILE*fp;

int i;

float sc1,sc2,sc3;

int creat()

{

 if((fp=fopen("cj.dat","w"))==NULL)

 {

  printf("\n打开失败");

  exit(1);

 }

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

 {

  printf("请输入第%d个同学的3门成绩:",i+1);

  scanf("%d,%d,%d",&sc1,&sc2,&sc3);

  fprintf(fp,"%d,%d,%d\n",sc1,sc2,sc3);

 }

 fclose(fp);

 return 0;

}

int aver()
{
    float sum1=0,sum2=0,sum3=0;
    if((fp=fopen("cj.dat","r"))==NULL)
    {
        printf("\n打开失败");
        exit(1);
    }
    for(i=0;i<5;i++)
    {
        fscanf(fp,"%d,%d,%d",&sc1,&sc2,&sc3);
        sum1=sum1+sc1;
        sum2=sum2+sc2;
        sum3=sum3+sc3;
    }
    printf("3门成绩平均分分别为:%d,%d,%d\n",sum1/5,sum2/5,sum3/5);
    return 0;
}

main()
{
    int t;
    printf("1-输入3名同学的3门成绩\n");
    printf("2-计算各科的平均分\n");
    printf("请输入要执行功能对应的数字\n");
    while(1)
    {
    scanf("%d",&t);
    switch(t)
    {
        case 1:creat();break;
        case 2:aver();break;
    }
    }
}

  • 写回答

3条回答 默认 最新

  • 关注

     printf("3门成绩平均分分别为:%d,%d,%d\n",sum1/5,sum2/5,sum3/5);

    改为

     printf("3门成绩平均分分别为:%f,%f,%f\n",sum1/5,sum2/5,sum3/5);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥15 Python3.5 相关代码写作
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像