while(ch != '\n') { scanf("%d %d", &len, &s2); s2--; if(D[s1][s2] == -1 || D[s1][s2] > len) { D[s1][s2] = len; D[s2][s1] = D[s1][s2]; } s1 = s2; ch = getchar(); }
时间: 2024-02-14 10:36:01 浏览: 22
c代码-while(scanf("%d%d", &i, &j) == 2) 和 while(~scanf("%d%d",&a,&b)) 的差别
这段代码是对当前路径信息进行处理的部分,具体实现如下:
1. 循环读取路径信息:当读取到路径的起点 s1 后,通过循环读取路径中的每个点,直到读取到换行符为止。
2. 读取路径中的点:在循环中,通过 scanf 读取路径中的每个点,其中 len 表示路径长度,s2 表示路径的终点,s2 的值减去 1,因为数组索引从 0 开始。
3. 更新距离信息:对于每个读取到的点,判断当前的距离是否为 -1 或者是否大于 len,如果是,则更新对应点之间的距离信息,即将 D[s1][s2] 和 D[s2][s1] 的值均更新为 len。
4. 更新起点:将当前的终点 s2 赋值给起点 s1,以便继续读取下一个点。
5. 读取下一个字符:读取下一个字符 ch,以便判断是否达到路径的末尾。
需要注意的是,在实际应用中,读取路径信息和处理路径信息的方式可能会因为具体的需求而有所变化,例如可以使用文件或者网络等方式读取路径信息,或者对路径信息进行更加复杂的处理。
阅读全文