Sa se scrie un program in C++ in care sa se arate transformarea unei matrici intr-un sir si invers.
Răspunsuri la întrebare
Răspuns:
#include <stdio.h>
#include <math.h>
int main(void)
{
int alegere;
printf("1. Din sir in matrice ?\n2. Din matrice in sir ?\n");
scanf("%d", &alegere);
system("cls");
if(alegere==1)
matrice();
if(alegere==2)
sir();
if(alegere!=1 && alegere!=2)
printf("Nu ati introdus varianta valabila");
return 0;
}
void matrice()
{
int array[100], x, c, n,y,j;
int matrix[10][10];
j=0;
printf("Introduceti dimensiunea sirului care v-a fi convertat in matrice (exemplu: 4,9,16....): ");
scanf("%d", &n);
printf("Introduceti elementele sirului\n");
for (c = 0; c < n; c++)
{
printf("array[%d]= ",c);
scanf("%d", &array[c]);
}
printf("\n");
for(x = 0 ; x < sqrt(c) ; x++) {
printf(" (");
for(y = 0 ; y < sqrt(c) ; y++){
printf("%d ", array[j]);
j++;
}
printf(")\n");
}
return;
}
void sir()
{
int array[100], x, c, n,y,j;
j=0;
int matrix[10][10];
printf("Introduceti dimensiunea matricii care v-a fi convertat in sir (exemplu: 2,3,4....): ");
scanf("%d", &n);
for(x = 0 ; x < n ; x++)
for(y = 0 ; y < n ; y++){
printf("matrix[%d][%d]=",x,y);
scanf("%d", &matrix[x][y]);
}
printf("Matricea are forma:\n");
for(x = 0 ; x < n ; x++) {
printf(" (");
for(y = 0 ; y < n ; y++)
{
printf("%d ", matrix[x][y]);
}
printf(")\n");
}
printf("\n\n");
for(x = 0 ; x < n ; x++)
for(y = 0 ; y < n ; y++)
{
array[j]=matrix[x][y];
j++;
}
printf("Sirul v-a avea forma:\n\n");
for(j=0;j<pow(n,2);j++)
printf("array[%d]= %d |",j, array[j]);
printf("\n");
return;
}
Explicație: