Cum fac sa formez un vector care ia elementele dintr o matrice în forma de spirala?????
Răspunsuri la întrebare
#include<stdio.h>
#include<conio.h>
main(){
int i,n,n1,p,q,aux,r,j,t,b[100],a[100][100];
printf("Introdu dimensiunea matricei: n=");
scanf("%d",&n);
printf("Introdu %d de elementele:\n",n*n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf("Matricea A:\n");
for(i=0;i<n;i++)
{ printf("\n");
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
}
if(n%2!=0) n1=n/2+1;
else n1=n/2;
p=0;
for(i=0;i<n1;i++)
{
for(j=i;j<n-i;j++)
{ b[p]=a[j][i];p++; }
for(q=i+1;q<n-i;q++)
{ b[p]=a[n-i-1][q];p++; }
for(r=n-i-2;r>=i;r--)
{ b[p]=a[r][n-i-1];p++; }
for(t=n-i-2;t>i;t--)
{ b[p]=a[i][t];p++; }
}
printf("\nVectorul B:\n");
for(i=0;i<p;i++) printf("%d ",b[i]);
for(i=0;i<p-1;i++)
for(j=0;j<p-1;j++)
{ if(b[j+1]<b[j])
{ aux=b[j];
b[j]=b[j+1];
b[j+1]=aux;
}
}
printf("\nVectorul B ordonat crescator:\n");
for(i=0;i<p;i++)
printf("%d ",b[i]);
}