⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sam.c

📁 该程序是作者编写的程序
💻 C
字号:
#include <stdio.h>

#define N 20
// N表示城市的最大数目
int num;    // 实际的城市数目

typedef struct
{  // 定义城市的结构
	int id;            // 城市的唯一标志号
	char name[30];     // 城市名称
	float population;  // 城市人口,单位:万人
	float area;        // 城市面积,单位:平方公里
} city_info;

city_info city[N];     // 城市的基本信息
float cost[N][N];      // 城市间的代价矩阵
float link[N][N];      // 城市间的连通邻接矩阵
float length[N][N];    // 城市间的里程信息

void readdata();
void showdata();
void sortbypopulation();

main()
{
	readdata();
	showdata();
	sortbypopulation();
}

void readdata()
{
	int i = 0, j;
	FILE *fp;
    if( ( fp = fopen("base.txt", "rt" ) ) != NULL )
	{  // 读出城市的基本信息
		while( !feof( fp ) )
		{
			fscanf( fp, "%d", &city[i].id );
			fscanf( fp, "%s", city[i].name );
			fscanf( fp, "%f", &city[i].population );
			fscanf( fp, "%f", &city[i].area );
			i++;
			if( i == N ) break;
		}
		num = i;
		fclose( fp );
	}
    if( ( fp = fopen("link.txt", "rt" ) ) != NULL )
	{  // 读出城市间的距离和代价
		while( !feof( fp ) )
		{
			fscanf( fp, "%d%d", &i, &j );
			fscanf( fp, "%f", &link[i][j] );
			link[j][i] = link[i][j];
			fscanf( fp, "%f", &cost[i][j] );
			cost[j][i] = cost[i][j];
		}
		fclose( fp );
	}
}

void showdata()
{
	int i, j;
	for( i = 0; i < num; i++ )
	{
		printf( "%3d %10s %7.2f %7.2f\n", city[i].id,
			city[i].name, city[i].population, city[i].area );
	}
	for( i = 0; i < num; i++ )
	{
		printf( "%5.1f", link[i][0] );
		for( j = 1; j < num; j++ )
			printf( " %5.1f", link[i][j] );
		putchar('\n');
	}
	for( i = 0; i < num; i++ )
	{
		printf( "%5.1f", cost[i][0] );
		for( j = 1; j < num; j++ )
			printf( " %5.1f", cost[i][j] );
		putchar('\n');
	}
}

void sortbypopulation()
{
	int i,j,loc;
	city_info t;
	for( i = 0; i < num; i++ )
	{  // select sort
		for( j = i+1; j < num; j++ )
			if( city[j].population < city[loc].population ) loc = j;
		if( loc != i )
		{  // exchange data
			t = city[i]; city[i] = city[loc]; city[loc] = t;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -