Chương trinh C giải thuật toán Floyd
k4info :: Khu vực học tập :: Học Tập
Trang 1 trong tổng số 1 trang
Chương trinh C giải thuật toán Floyd
Cái này nhờ thằng Hậu nói mới nghĩ ra mà làm, còn chút thiếu sót, ai phát hiện được gì thì xin chỉ điểm thêm.
Sau đây là code:
Một chút lưu ý :
+ Khi sử dụng, dùng số 0 thay cho các chỗ trống trong ma trận trọng số.
+ Nhớ chỉnh lại màn hình dos có chiều rộng lớn hơn 120, nếu không có thể sẽ hiển thị sai khi ma trận có kích thước 5x5 trở lên.
+ Công việc gian khổ cuối cung : Copy+Paste vào bất cứ chương trình C nào.
+ Sau đây là thành phẩm : [You must be registered and logged in to see this link.]
Đôi lời sau chót : Hahahaha, thiệt khâm phục ta quá đi.
Sau đây là code:
- Code:
#include
#include
//Kiem tra ma tran co day hay chua
int fullfil(int arr[255][255],int size)
{
int i,j;
for(i=0;i
{
for(j=0;j
{
if(arr[i][j]==0)
{
return 0;
}
}
}
return 1;
}
//Dien day ma tran
void fill(int arr[255][255], int size)
{
int i,j,k;
for(i=0;i
{
for(j=0;j
{
for(k=0;k
{
if(arr[i][j]==0)
{
if(!(arr[i][k]==0||arr[k][j]==0))
{
if(arr[i][j]
{
arr[i][j]=arr[i][k]+arr[k][j];
}
}
}
}
}
}
if(fullfil(arr,size)==0)
{
fill(arr,size);
}
}
void main()
{
int f=1;
while(f!=0)
{
int i,j,k,v;
int arr[255][255];
printf("Kich thuoc ma tran : ");
scanf("%d", &v);
printf("\nMa tran mau : \n\n");
for(i=0;i
{
for(j=0;j
{
printf("v[%d][%d]\t\t", i+1, j+1);
}
printf("\n\n");
}
printf("\nNhap du lieu : \n\n");
for(i=0;i
{
for(j=0;j
{
printf("v[%d][%d] = ",i+1,j+1);
scanf("%d",&arr[i][j]);
}
}
//kiem tra ma tran co day chua
if(fullfil(arr,v)==0)
{
//dien day ma tran
fill(arr,v);
}
//ma tran da dien day
printf("\nMa Tran Da Dien Day : \n\n");
for(i=0;i
{
for(j=0;j
{
printf("%d\t\t",arr[i][j]);
}
printf("\n\n");
}
///////////////////////////////////////////////////////////////
printf("\n\n");
///////////////////////////////////////////////////////////////
//xu ly ma tran
for(i=0;i
{
for(j=0;j
{
for(k=0;k
{
if(arr[i][j]>arr[i][k]+arr[k][j])
{
arr[i][j]=arr[i][k]+arr[k][j];
}
}
}
}
//bieu dien ma tran da xu ly
printf("KET QUA : \n\n");
printf("\n------------------------------------------------------------------------\n");
for(i=0;i
{
for(j=0;j
{
printf("%d\t\t",arr[i][j]);
}
printf("\n\n");
}
printf("\n\nBan co muon lam tiep khong : 1 -(CO) | 0-(KHONG)");
scanf("%d",&f);
printf("\n\n\n");
}
getch();
}
Một chút lưu ý :
+ Khi sử dụng, dùng số 0 thay cho các chỗ trống trong ma trận trọng số.
+ Nhớ chỉnh lại màn hình dos có chiều rộng lớn hơn 120, nếu không có thể sẽ hiển thị sai khi ma trận có kích thước 5x5 trở lên.
+ Công việc gian khổ cuối cung : Copy+Paste vào bất cứ chương trình C nào.
+ Sau đây là thành phẩm : [You must be registered and logged in to see this link.]
Đôi lời sau chót : Hahahaha, thiệt khâm phục ta quá đi.
cradius- Posts : 5
Thanked : -1
18/01/2011
Similar topics
» Phân Tích Thiết Kế Thuật Toán
» Xin code tim duong di ngan nhat bang thuat toan A*.
» Giải đề thi Kỹ thuật đồ hoạ
» Chương trình tính N!
» Ai có bài giải môn kỹ thuật đồ hoạ lúc thi học kỳ không? cho mình xin để ôn thi lại
» Xin code tim duong di ngan nhat bang thuat toan A*.
» Giải đề thi Kỹ thuật đồ hoạ
» Chương trình tính N!
» Ai có bài giải môn kỹ thuật đồ hoạ lúc thi học kỳ không? cho mình xin để ôn thi lại
k4info :: Khu vực học tập :: Học Tập
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|