为了账号安全,请及时绑定邮箱和手机立即绑定

求大神, 这一句被跳过,哪里错了?

#include <stdio.h>

#include <stdlib.h>

#define inf 9999

//寻找起点到各个点的最短路径 

int main(void)

{

int map[50][50]; // 存储邻接矩阵 

int n, m;

int a, b, c;

int start;

int i, j, k;

printf("Please enter: ");

scanf("%d%%d%d", &n, &m, &start);

// 初始化地图 

for (i = 0; i < n; i++)

for (j = 0; j < n; j++)

{

if (i == j)

map[i][j] = 0;

else

map[i][j] = inf;

}

// 被跳过了 

for(i = 0; i < m; i++)

{

scanf("%d%d%d", &a, &b, &c);

map[a][b] = c;

}

for (i = 0; i < n; i++)

{

for (j = 0; j < n; j++)

printf("%d\t", map[i][j]);

printf("\n");

}

return 0;


正在回答

3 回答

scanf("%d%%d%d", &n, &m, &start);

// 初始化地图

你这句话多一个“%”没影响吗?m值输出的是什么?

0 回复 有任何疑惑可以回复我~
#1

qq_愿时光安好_04050009 提问者

非常感谢!
2017-03-04 回复 有任何疑惑可以回复我~

应该是第一个scanf出问题了,导致缓冲队列没清空

0 回复 有任何疑惑可以回复我~

for (i = 0; i < n; i++)

{                                                     //忘记添加花括号

for (j = 0; j < n; j++)

{

if (i == j)

map[i][j] = 0;

else

map[i][j] = inf;

}

}

第一个for 循环加个花括号

0 回复 有任何疑惑可以回复我~
#1

qq_愿时光安好_04050009 提问者

不对, 是下一句被跳过了。 根本没让输入abc直接跳过了
2017-03-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926263    人
  • 解答问题       20798    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

求大神, 这一句被跳过,哪里错了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信