| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 353 人关注过本帖
标题:求助,问一下这个程序的文件读写部分怎么写??
只看楼主 加入收藏
george12008
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2014-4-27
结帖率:100%
收藏
已结贴  问题点数:6 回复次数:1 
求助,问一下这个程序的文件读写部分怎么写??
这个程序,数据都在txt文件里 怎样不用手输入数据(大概500多条)?让文件里的数据直接被提取出来参加程序运算并且新建一个txt文档,把运算出来的数据写入到里面去啊??问一下各位大神,怎么办?在线等,急!!
如:数据文件(test.txt)
5
1 4 1
1 2 5
1 3 4
4 3 1
3 2 1
2 5 1
4 1 1
2 1 5
3 1 4
3 4 1
2 3 1
5 2 1
数据文件地址:D:\testfile\test.txt

程序代码:
#include <stdio.h>           
#include <limits.h>         
#include <stdlib.h>          
#define   MAXSIZE   200      
void  floyd(int[][MAXSIZE], int[][MAXSIZE], int);
void  display_path(int[][MAXSIZE], int[][MAXSIZE], int);
void  reverse(int[], int);
void  readin(int[][MAXSIZE], int *);
#define   MAXSUM(a, b)   (((a) != INT_MAX && (b) != INT_MAX) ? \
        ((a) + (b)) : INT_MAX)
void floyd(int dist[][MAXSIZE], int path[][MAXSIZE], int n)
{
        int  i, j, k;
        for (i = 0; i < n; i++)
                for (j = 0; j < n; j++)
                {
                        path[i][j] = i;        
                }
        for (k = 0; k < n; k++)
                for (i = 0; i < n; i++)
                        for (j = 0; j < n; j++)
                                if (dist[i][j] > MAXSUM(dist[i][k], dist[k][j]))
                                {
                                        path[i][j] = path[k][j];
                                        dist[i][j] = MAXSUM(dist[i][k], dist[k][j]);
                                }
}
void display_path(int dist[][MAXSIZE], int path[][MAXSIZE], int n)
{
        int  *chain;
        int  count;
        int  i, j, k;
        printf("\n\nOrigin->Dest   Dist   Path");
        printf("\n-----------------------------");
        chain = (int *)malloc(sizeof(int)*n);
        for (i = 0; i < n; i++)
                for (j = 0; j < n; j++)
                {
                        if (i != j)
                        {
                                printf("\n%6d->%d    ", i + 1, j + 1);
                                if (dist[i][j] == INT_MAX)
                                        printf("  NA    ");
                                else
                                {
                                        printf("%4d    ", dist[i][j]);
                                        count = 0;
                                        k = j;
                                        do
                                        {
                                                k = chain[count++] = path[i][k];
                                        } while (i != k);
                                        reverse(chain, count);
                                        printf("%d", chain[0] + 1);
                                        for (k = 1; k < count; k++)
                                                printf("->%d", chain[k] + 1);
                                        printf("->%d", j + 1);
                                }
                        }
                }
        free(chain);
}
#define SWAP(a, b)  { temp = a; a = b; b = temp; }
void reverse(int x[], int n)
{
        int  i, j, temp;
        for (i = 0, j = n - 1; i < j; i++, j--)
                SWAP(x[i], x[j]);
}
void readin(int dist[][MAXSIZE], int *number)
{
        int  origin, dest, length, n;
        int  i, j;
        char line[100];
        gets(line);
        sscanf(line, "%d", &n);
        *number = n;
        for (i = 0; i < n; i++)
        {
                for (j = 0; j < n; j++)
                        dist[i][j] = INT_MAX;
                dist[i][i] = 0;
        }
        gets(line);
        sscanf(line, "%d%d%d", &origin, &dest, &length);
        while (origin != 0 && dest != 0 && length != 0)
        {
                dist[origin - 1][dest - 1] = length;
                gets(line);
                sscanf(line, "%d%d%d", &origin, &dest, &length);
        }
}

int main(void)
{
        int dist[MAXSIZE][MAXSIZE];
        int path[MAXSIZE][MAXSIZE];
        int n;
    printf("\nInput the path information:");
        printf("\n----------------------------\n");
        readin(dist, &n);
        floyd(dist, path, n);
        display_path(dist, path, n);
        getchar();
}
搜索更多相关主题的帖子: 在线 新建 
2014-04-27 15:55
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:6 
百度freopen


[fly]存在即是合理[/fly]
2014-04-27 22:53
快速回复:求助,问一下这个程序的文件读写部分怎么写??
数据加载中...
 
   



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

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