30/09/2018, 18:45

duỗi ma trân A thành vector B

Ai biết thuật toán bài này thì giúp mình với
Cho ma trận Am*n, nhập vào ma trận A và yêu cầu:
Hãy duỗi ma trận A thành vector B theo hướng từ A11->A1n->A2n->A21->…->Amn

Nguyễn Thái Bảo viết 20:56 ngày 30/09/2018

bạn thử xem:
count=0;
for (i=0;i<m;i++)
{ if (i%2==0)
for (j=0;j<n;j++)
{ B[count]=A[i][j];
count++;
}
else
for (j=n-1;j>=0;j–)
{ B[count]=A[i][j];
count++;
}

Nhan Nguyen viết 20:56 ngày 30/09/2018

thanks ạ:grinning:

Nguyễn Thái Bảo viết 20:55 ngày 30/09/2018

Lạ nhỉ sao gõ 1 đằng nó lại hiện ra 1 nẻo nhỉ

Nhan Nguyen viết 21:02 ngày 30/09/2018

#include <stdio.h>
int main()
{
int n,i,j,m;
int a[10][10];
int b[100];
printf(“Nhap m: “);
scanf(”%d”,&m);
printf(“Nhap n: “);
scanf(”%d”,&n);
for(i=0; i<m; i++)
for(j=0; j<n; j++)
{
printf(“A[%d][%d]= “,i+1,j+1);
scanf(”%d”,&a[i][j]);
}
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
printf("%d “,a[i][j]);
printf(”\n");
}
int p=-1;
int cot=0,k=-1;
while(cot<n/2+1)
{
for(i=0; i<m; i++)
if(i%2==0)
{
k+=1;
b[k]=a[i][cot];
k+=1;
b[k]=a[i][n-cot-1];
}
else
{
k+=1;
b[k]=a[i][n-cot-1];
k+=1;
b[k]=a[i][cot];
}
cot+=1;
}
for(i=0; i<m*n; i++)
printf("%d ",b[i]);
}

Nhan Nguyen viết 21:01 ngày 30/09/2018

Mh đã làm lại như vậy đó b

Nguyễn Thái Bảo viết 20:46 ngày 30/09/2018

trông phức tạp quá nhỉ

Bài liên quan
0