邻接矩阵输出程序(问题)

来源:互联网 发布:mac不能新建文件夹 编辑:程序博客网 时间:2024/06/05 03:19
#ifndef MAIN_HEAD#define MAIN_HEAD#include <vector>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <memory.h>#include <time.h>#include <math.h>#include <algorithm>#include <iostream>#define N 25#define INF 999using namespace std;int f_read_file1(int topo[N][N]);#endif

上面是头文件

#include "main.h"#define TURE 1#define FALSE 0#define ARRIVING 1#define LEAVING 0#define NOEVENT -1 FILE *fp_1=fopen("test.txt","w");int main(){int i,j;int topo[N][N];int link_sum=0;////读取邻接表文件到数组if (f_read_file1(topo)==0) {printf("文件打开失败!\n");return 0;}////显示邻接数组 printf("\n/*****************原始网络的带权临接矩阵如下:***************************/\n");for (i=0;i<N;i++){  for (j=0;j<N;j++){if (topo[i][j]!=INF) link_sum++;printf("%d ",topo[i][j]);}printf("\n");}link_sum=link_sum/2;printf("链路数总和为:%d \n",link_sum);}int f_read_file1(int topo[N][N]){ char ch_read; int i,j; char str[]={"0"};char ch_qz[]={"0"},ch_qz_ini[]={""};///ch_qz用于存储某个节点权值,ch_qz_ini用于初使化FILE *fp=NULL;//if((fp=fopen("e:\\topology.txt", "r"))==NULL) ///打开存储权值的文件if((fp=fopen("topology1.txt", "r"))==NULL) ///打开存储权值的文件{//printf("文件打开失败!\n");return 0;}//printf("文件打开成功!\n");////读文件,从文件中每次读取一个字符ch_read=fgetc(fp);ch_qz[0]=ch_read;i=0;////数组行下标j=0;///数组列下标while(ch_read!=EOF){//if (ch==10)  printf("\n放行回车");//if (ch==32)  printf("\n这是空格");ch_read=fgetc(fp);str[0]=ch_read;if ((ch_read==32) || (ch_read==10))  {topo[i][j]=atoi(ch_qz);j++;if (ch_read==10)  ///新行开始{i++;j=0;}ch_qz[0]=ch_qz_ini[0];//ch_qz[1]=ch_qz_ini[1];//ch_qz[2]=ch_qz_ini[2];//ch_qz[3]=ch_qz_ini[3];}else {strcat(ch_qz,str); ///合并}}fclose(fp);return 1;}  

用visual C++ 2008运行时出现如下问题:


用VC6.0运行时,拓扑打印有误(最后一个数字打印错误)


原始矩阵为


0 0
原创粉丝点击