Tin Kien Giang K31
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Tin Kien Giang K31

Chao mung den voi dien dan Tin-KG Khoa 31
 
Trang ChínhTìm kiếmLatest imagesĐăng kýĐăng Nhập

 

 BÀI TOÁN ZICZAC

Go down 
Tác giảThông điệp
thu huong
Moderator
Moderator



Tổng số bài gửi : 25
Registration date : 17/09/2007

BÀI TOÁN ZICZAC Empty
Bài gửiTiêu đề: BÀI TOÁN ZICZAC   BÀI TOÁN ZICZAC Empty5/4/2008, 21:15

Em vừa làm xong bài ziczac nhưng gặp một vấn đề "BIG" về thuật tóan nên in ra được nửa phần trên đường chéo phụ đúng theo hình zizcac . Nhưng phần còn lại trên đường chéo phụ thì chưa đúng.
Mong mọi người nghiên cứu và cho ý kiến.
#include <iostream>
#include <fstream>
#include <conio.h>

using namespace std;

void nhap();
void xuat();
void xuli();
int n;
int a[100][100];

void main()

{
nhap();
xuli();
xuat();
}
void nhap()
{
ifstream fi;
fi.open("data.txt");
fi>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
a[i][j]=0;
}
}
fi.close();
}
void xuat()
{
ofstream fo;
fo.open("out.txt");
for(int j=0;j<n;j++)
{
fo<<endl;
for(int i=0;i<n;i++)
{
fo<<a[j][i]<<" ";
}
}
fo.close();
}
void xuli()
{
int m=n*n;
int i=0; int j=0;
a[i][j]=1;
i=1;
int d=0;
for(int k=2;k<=m;k++)
{
a[i][j]=k;


switch(d)
{
case 0:
if(i>=j)
{
d=1;
i--;
j++;
}
else
{
d=2;
i++;
j--;
}
break;

case 1:
if(a[i-1][j+1]==0)
{
i--;
j++;
}
else
{
if(j==n-1)
{
d=0;
i++;
}
else
{
d=3;
j++;
}
}

case 2:
if(a[i+1][j-1]==0)
{
i++;
j--;
}
else
{

if(i==n-1)
{
d=3;
j++;
}
else
{
d=0;
i++;
}
}
break;

case 3:
if(i<=j)
{
d=2;
i++;
j--;
}
else
{
d=1;
i--;
j++;
}

break;
}

}
}
Về Đầu Trang Go down
 
BÀI TOÁN ZICZAC
Về Đầu Trang 
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
Tin Kien Giang K31 :: Cộng Đồng :: Cộng Đồng :: Thảo luận chung-
Chuyển đến