| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 403 人关注过本帖
标题:急求!! 关于路径最短 程序有问题 好象是文件????
只看楼主 加入收藏
zhzhmiao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-7-27
收藏
 问题点数:0 回复次数:2 
急求!! 关于路径最短 程序有问题 好象是文件????

#include <stdio.h>
#define N 5
#define I 9999.9
#define true 1
#define false 0
struct three{
float S;
float time;
float money;}allcity[N][N];
final[N];
float test[N];
main()
{
char ch,zh;
int score,v,w,i,k,p,min;
float city[N][N],a1,a2,a3; FILE *fp;


fp=fopen("DATA","wb");
printf("input:");
for (i=0;i<N;i++)
for (k=0;k<N;k++)
{printf("allcity[%d][%d]",i,k);
scanf("%f %f %f",&a1,&a2,&a3);
allcity[i][k].S=a1; allcity[i][k].time=a2; allcity[i][k].money=a3;}
i=fwrite(allcity,sizeof(allcity),1,fp); printf("_%d_%d_",ferror(fp),i);
fclose(fp);
printf("byebye!");


if (fp=fopen("DATA","rb")==NULL)
{printf("can't open the file"); exit(0); }
i=fread(allcity,sizeof(allcity),1,fp); printf("_%d_",ferror(fp));
printf("please input beginning city:\n");
scanf("%c",&ch);
score=ch-'A';
printf("please input searching type:\n");
printf("1.distance\n");
printf("2.time\n");
printf("3.money\n");
scanf("%d",&p);
switch (p)
{
case 1: {for (i=0;i<N;i++) {for(k=0;k<N;k++) city[i][k]=allcity[i][k].S;}
break;}
case 2: {for (i=0;i<N;i++) {for(k=0;k<N;k++) city[i][k]=allcity[i][k].time;}break;}
case 3: {for (i=0;i<N;i++) {for(k=0;k<N;k++) city[i][k]=allcity[i][k].money;}break;}
}
fclose(fp);
for(i=0;i<N;i++)
{test[i]=city[score][i]; final[i]=false;}
test[score]=0;
final[score]=true;
for (v=0;v<N-1;v++)
{min=I;
for(w=0;w<N;w++)
if (test[w]<min&&(!final[w]))
{min=city[score][w];i=w;}
final[i]=true;

for(w=0;w<N;w++)
if(test[i]+city[i][w]<test[w]&&(!final[w]))
test[w]=test[i]+city[i][w];
}
getchar();
printf("please input ending city:");
scanf("%c",&zh);
switch (p)
{
case 1:{printf("the shortest distance:%f",test[zh-'A']);break;}
case 2:{printf("the shortest time:%f",test[zh-'A']);break;}
case 3:{printf("the least money:%f",test[zh-'A']);break;}
}

}

搜索更多相关主题的帖子: 路径 文件 
2007-07-27 15:59
zhzhmiao
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-7-27
收藏
得分:0 

怎么还没人看出来啊!!!


我估计是这一句有问题 但不知道怎么改

if (fp=fopen("DATA","rb")==NULL)
{printf("can't open the file"); exit(0); }
i=fread(allcity,sizeof(allcity),1,fp); printf("_%d_",ferror(fp));

2007-07-27 20:38
子夜狂人
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-1-25
收藏
得分:0 
没注释的东西我怕怕
2007-07-27 21:02
快速回复:急求!! 关于路径最短 程序有问题 好象是文件????
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019977 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved