错那儿呢,运行结果跟我想的不一样

#include<stdio.h>
#include<string.h>
int main()
{
double sum=0;
int g,r,n=1;
char* b;
printf("输入一个成绩:");
scanf("%d",&g);
sum+=g;
do{
printf("是否继续--yes--no\n");
scanf("%s",&b);
if(strcmp(b,"yes")==0)
{scanf("%d",&g);}
sum+=r;
n++;
}while(strcmp(b,"yes")==0);
printf("这些成绩的平均值为:%lf",sum/n);
return 0;
}


#include <stdio.h>
#include <string.h>
int main()
{
    double sum = 0;
    int g, r=0, n = 0;
    char b[5];
    // char *b = str;
    printf("输入一个成绩:");
    scanf("%d", &g);
    sum += g;
    do
    {
        printf("是否继续--yes--no\n");
        scanf("%s", &b);
        if (strcmp(b, "yes") == 0)
        {
            scanf("%d", &r);
            sum += r;
        }
        n++;
    } while (strcmp(b, "yes") == 0);
    
    printf("%lf\n这些成绩的平均值为:%lf",sum,sum / n);
    return 0;
}