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

#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);}**
    

    ```

```**

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);
}

重新贴完成的程序,这样看不了