改下错解决思路

改下错
algraph_gra; int MGraph_L(G); int i,d,g[20][20];
char a='a'; d=creatMGraph_L(G); vnode v;
Printf("注意:若该图为非强连通图(含有多个连通分量)时/n");
Printf("最小生成树不存在,则显示为非法值/n");
Printf("…………………菜单……………………/n");
Printf("0、显示该图的邻接矩阵……………………/n");
Printf("1、最小生成树PRIM算法及代价…………………/n");
int s; char y='y';
while(y='y') { printf("请选择菜单:"); scanf("%d",&s);
  switch(s){
  case 0: printf("邻接矩阵显示如下:/n"); ljjzprint(G); break;
  case 1: for(i=0;i!=G.vexnum;++i)
  for(intj=0;j!=G.vexnum;++j) g[i+1][j+1]=G.arcs[i][j].adj;
  Printf("prim:/n"); prim(g,d); break; }
  Printf("是否继续?y/n"); scanf("%d";&y); if(y=='n') break; }
}


------解决方案--------------------
while(y='y')错了,应该写成while(y=='y')
------解决方案--------------------
=:赋值
==判断
------解决方案--------------------
scanf("%d";&y)也错了scanf("%c",y)
------解决方案--------------------
Printf("是否继续?y/n");
改为
Printf("是否继续?(y or n) /n");
C语言,定义变量放在最前边,定义在中间会报错
------解决方案--------------------
探讨
scanf("%d";&y)也错了scanf("%c",y)

------解决方案--------------------
上面的都是正解不过说个小细节 if(‘y’==y)这样写你都不会错了,因为你要是少写了=会报错的