C语言 文中的代码是指定想用结构体和goto 的功能,所以大体的结构不能改 但是又输出的sum又是垃圾值


#include<stdio.h>
#include<string.h>
struct Menu
{
    char no[4];
    char name[30];
    int Price;
    int Ava;
    char des[100];
};
int main()
{
    char xxx[4]={0};
    struct Menu ki[2]={
        {"1-1","Chicken starter",150,5,"4 pcs boneless chicken"},
        {"1-2","Fish starter",120,6,"2 pcs fish"}
    };
    int M;
    printf("enter:");
    scanf("%d",&M);
    if(M==1)
    {
        strcpy(xxx,"1-1");
        goto OUT;
    }
    int sum;
    OUT:
    if(strcmp(ki[0].no,xxx)==0){
        printf("%s\t%s\t%d\t%d\t%s\n",ki[0].no,ki[0].name,ki[0].Price,ki[0].Ava,ki[0].des);
        sum=sum+ki[0].Price;
    }
    printf("Total:%d\n",sum);
    return 0;
}

我觉得问题是出在goto身上,但是我们被要求用goto 所以请老师们帮帮问题出在哪里,怎么解决这个问题

img

sum没有初始化,27行改为int sum=0;并放到22行以上