Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 4 của 4
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Bài C về tạo ma trận từ 1 file text

    Đọc n*m số nguyên từ một file text.
    - Điền các số đó lần lược theo hình xoắn ốc từ ngoài vào trong theo một chiều nào đó của ma trận nxm.
    - Xuất ra màn ảnh hoặc file text.
    can các anh giúp đỡ!em làm bài ko ra no đọc file ko dc này.
    các anh góp ý dùm em.cho em 1 số hướng làm di mà.thanks trc các anh nào giúp đỡ em.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    bài hình xoắn ốc có trong 4r rùi đó pn.tranh thủ tìm kiếm trc khi hỏi

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    ở đâu vậy anh?chỉ dùm em đi

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Bạn có thể tham khảo đoạn code của mình.
    Mã:
    /* Ma trận theo qui luật:
    ^--->		Xoắn ốc....!
    |      |
    |<--|
    */
    #include <stdio.h>
    #include <conio.h>
    void Matran_Bt(int a[][100], int &n, int &m);
    void Matran_Xoanoc(int a[][100], int n, int m);
    void Xuat_Matran(int a[][100], int n, int m);
    void main()
    {
    	int a[100][100], n, m;
    	printf("Chuong trinh in ma tran theo xoan oc.");
    	printf("
    Nhap n=");
    	scanf("%d",&n);
    	printf("
    Nhap m=");
    	scanf("%d",&m);
    	printf("
    Ma tran binh thuong:");
    	Matran_Bt(a,n,m);
    	printf("
    ");
    	Xuat_Matran(a,n,m);
    	printf("
    Ma tran qui luat xoan oc:");
    	Matran_Xoanoc(a,n,m);
    	printf("
    ");
    	Xuat_Matran(a,n,m);
    	getch();
    }
    void Matran_Bt(int a[][100], int &n, int &m)
    {
    	int count=1;
    	for(int i=0;i<n;i++)
    		for(int j=0;j<m;j++)
    			a[i][j]=count++;
    }
    void Matran_Xoanoc(int a[][100], int n, int m)
    {
    	int value=1;
    	int a1=0,a2=m-1,a3=n-1,a4=0,sovong,sv=0;
    	if (n%2==0)
    		sovong=n/2;
    	else 
    		sovong=n/2+1;
    	while (sv<=sovong)
    	{
    		for(int j=a1;j<=a2;j++)
    			a[a1][j]=value++;
    		if (value==m*n+1) break;
    		for(int i=a1+1;i<=a3;i++)
    			a[i][a2]=value++;
    		if (value==m*n+1) break;
    		for(int j=a2-1;j>=a4;j--)
    			a[a3][j]=value++;
    		if (value==m*n+1) break;
    		for(int i=a3-1;i>a1;i--)
    			a[i][a4]=value++;
    		if (value==m*n+1) break;
    		a1++;a2--;a3--;a4++;sv++;
    	}
    }
    void Xuat_Matran(int a[][100], int n, int m)
    {
    	for(int i=0;i<n;i++)
    	{
    		for(int j=0;j<m;j++)
    			printf("%3d",a[i][j]);
    		printf("
    ");
    	}
    }

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •