首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

哪位高手能给解决解决这个有关问题呀,是在不知道为什么了

2013-01-02 
谁能给解决解决这个问题呀,是在不知道为什么了#includestdio.htypedef char dingdiantypedef int quanz

谁能给解决解决这个问题呀,是在不知道为什么了
#include<stdio.h>
typedef char dingdian;
typedef int quanzhi;
#define zuidadds 100
#define zuidazhi 10000//用指令定义常量不加分号,若加了分号在下面凡是用到此常量是会报错:syntax error : missing ')' before ';', syntax error : missing ';' before ')'
int visit[zuidadds];
typedef struct{
dingdian D[zuidadds];
quanzhi Q[zuidadds][zuidadds];
int shijidds,bians;
}wang;
int dingdwz(wang W,dingdian v){
int i;
for(i=0;i<W.shijidds;i++)
if(W.D[i]==v)
return i;
return -1;
}
void creatwang(wang W){
int i,j,k;
printf("请输入实际顶点个数,以及边数\n");
scanf("%d,%d",&W.shijidds,&W.bians);
getchar();//三个getchar()都不可缺。
for(i=0;i<W.shijidds;i++){
visit[i]=0;
printf("输入顶点");
scanf("%c",&W.D[i]);
getchar();//不加getchar()结束符回车将被读进去,引发错误
}
for(i=0;i<W.shijidds;i++){//初始化过程。
for(j=0;j<W.shijidds;j++){
W.Q[i][j]=zuidazhi;
}
}
for(k=0;k<W.bians;k++){
dingdian v1,v2;
quanzhi x;
printf("请输入第%d条边依附的顶点及权值\n",k+1);
scanf("%c,%c,%d",&v1,&v2,&x);
getchar();//不加getchar()结束符回车将被读进去,引发错误
i=dingdwz(W,v1);
j=dingdwz(W,v2);
W.Q[i][j]=x;
W.Q[j][i]=W.Q[i][j];
printf("%d,%d\n",i,j);
}
}
void DFS(wang W,int v){

//if(visit[v]==0)
printf("%c",W.D[v]);为什么在主函数中调用该函数的时候根本没输出呀,大家帮着看看吧


}
void main(){
wang W;
creatwang(W);
printf("****************************无向网创建完成****************************");
printf("\n深度优先遍历结果为:\n");
DFS(W,1);
}

[解决办法]
http://bbs.csdn.net/topics/390307606?page=1#post-393135331
[解决办法]
注意什么函数的参数要用到&啊

你现在是定义一个变量,再去tcreatwang();应该加上&去调用。
没有地址符就是新建一个变量,函数调用完之后会给内存回收的··等于你白费劲了
[解决办法]
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。

热点排行