qq_56933113 2021-09-04 11:03 采纳率: 100%
浏览 29
已结题

为什么我输入数据进去结果得到乱码

#include<stdio.h>#define N 2struct student{ int id; char name[20];

  • float math;    float PE;     float chinese;    float English;    float physical;};float math_average(student st[],int n){    float sum;    float average;    int i;    for(i=0;i<n;i++)    {        sum+=st[i].math;        }    average=sum/2.0;    printf("数学总分为%f,数学平均分为%f",sum,average);    return 0;};void main(){    int i;    struct student st[N];    for(i=0;i<N;i++)    {        printf("学号");        scanf("%d",&st[i].id);        printf("名字");        scanf("%s",st[i].name);        printf("数学成绩");        scanf("%f",&st[i].math);        printf("体育成绩");        scanf("%f",&st[i].PE);        printf("语文成绩");        scanf("%f",&st[i].chinese);        printf("英语成绩");        scanf("%f",&st[i].English);        printf("物理成绩");        scanf("%f",&st[i].physical);            }    math_average(st,N);}**
    

    ```

```**

  • 写回答

2条回答 默认 最新

  • qfl_sdu 2021-09-04 11:07
    关注

    float sum;这里没有初始化,改成float sum = 0.0;

    #include<stdio.h>
    #define N 2
    struct student{ 
        int id; 
        char name[20];
        float math;    
        float PE;     
        float chinese;    
        float English;    
        float physical;
    };
    float math_average(student st[],int n)
    {    
        float sum = 0.0;   //这里需要初始化
        float average;    
        int i;    
        for(i=0;i<n;i++)    
        {        
            sum+=st[i].math;  //sum 没有初始化,需要在前面初始化     
        }    
        average=sum/n;    
        printf("数学总分为%f,数学平均分为%f",sum,average);    
        return 0;
    };
    void main()
    {    
        int i;    
        struct student st[N];    
        for(i=0;i<N;i++)    
        {        
            printf("学号");        
            scanf("%d",&st[i].id);        
            printf("名字");        
            scanf("%s",st[i].name);       
            printf("数学成绩");        
            scanf("%f",&st[i].math);        
            printf("体育成绩");        
            scanf("%f",&st[i].PE);        
            printf("语文成绩");        
            scanf("%f",&st[i].chinese);        
            printf("英语成绩");        
            scanf("%f",&st[i].English);        
            printf("物理成绩");        
            scanf("%f",&st[i].physical);            
        }    
        math_average(st,N);
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月12日
  • 已采纳回答 9月4日
  • 创建了问题 9月4日

悬赏问题

  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗