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
Bài liên quan
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++;
}
thanks ạ:grinning:
Lạ nhỉ sao gõ 1 đằng nó lại hiện ra 1 nẻo nhỉ
#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]);
}
Mh đã làm lại như vậy đó b
trông phức tạp quá nhỉ