Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ConsoleApplication9.cpp : Questo file contiene la funzione 'main', in cui inizia e termina l'esecuzione del programma.
- //
- #include "pch.h"
- #include <iostream>
- #include<time.h>
- using namespace std;
- void menu();
- int **alloc(int *r, int *c);
- int *allocarrayp(int **matrix, int r, int c);
- int *allocarrays(int **matrix, int r, int c);
- void visualizza(int **matrix, int r, int c, int *arrayp, int *arrays);
- int **alloc2(int *r, int *c);
- void trasporto(int *arrayp, int *r, int *c, int **matrix2);
- void visualizza(int **matrix2, int *r, int *c);
- int main()
- {
- menu();
- system("pause");
- return 0;
- }
- void menu()
- {
- int **matrix = 0;
- int **matrix2 = 0;
- int *arrayp = 0;
- int *arrays = 0;
- int r;
- int c;
- int scelta;
- srand(time(NULL));
- do
- {
- system("cls");
- printf("1.carica random una matrice di interi\n2.crea un array con gli elementi della diagonale principale\n3.crea un array con la diagonale secondaria\n4.visualizza matrice e array\n5.creazione matrice grande la meta' rispetto quella iniziale\n6.inserimento elementi diagonale principale nella nuova matrice\n0.esci dal programma\nfai una scelta ");
- scanf_s("%d", &scelta, sizeof(int));
- switch (scelta)
- {
- case 1:
- matrix=alloc(&r, &c);
- break;
- case 2:
- arrayp = allocarrayp(matrix, r, c);
- break;
- case 3:
- arrays = allocarrays(matrix, r, c);
- break;
- case 4:
- visualizza(matrix, r, c, arrayp, arrays);
- system("pause");
- break;
- case 5:
- matrix2 = alloc2(&r, &c);
- break;
- case 6:
- trasporto(arrayp, &r, &c, matrix2);
- visualizza(matrix2, &r , &c);
- system("pause");
- break;
- case 0:
- printf("alla prossima\n");
- system("pause");
- break;
- }
- } while (scelta != 0);
- }
- int **alloc(int *r, int *c)
- {
- int **matrix = 0;
- printf("inserisci le righe e le colonne della matrice\n");
- scanf_s("%d", r, sizeof(int));
- *c = *r;
- matrix = (int**)malloc(*r * sizeof(int));
- for (int i = 0; i < *r; i++)
- matrix[i] = (int*)malloc(*c * sizeof(int));
- if (matrix == NULL)
- printf("errore di allocazione\n");
- for (int i = 0; i < *r; i++)
- {
- for (int j = 0; j < *c; j++)
- {
- matrix[i][j] = 10 + rand()%50;
- }
- }
- return matrix;
- }
- int *allocarrayp(int **matrix, int r, int c)
- {
- int *arrayp = 0;
- int cont = 0;
- arrayp = (int*)malloc(r * sizeof(int));
- if (arrayp == NULL)
- printf("errore di allocazione\n");
- for (int i = 0; i < r; i++)
- {
- for (int j = 0; j < c; j++)
- {
- if (i == j)
- {
- cont++;
- arrayp[cont - 1] = matrix[i][j];
- }
- }
- }
- return arrayp;
- }
- int *allocarrays(int **matrix, int r, int c)
- {
- int *arrays = 0;
- int cont = 0;
- arrays = (int*)malloc(r * sizeof(int));
- for (int i = 0; i < r; i++)
- {
- for (int j = 0; j < c; j++)
- {
- if ((i+j)==(r-1))
- {
- cont++;
- arrays[cont - 1] = matrix[i][j];
- }
- }
- }
- return arrays;
- }
- void visualizza(int **matrix, int r, int c, int *arrayp, int *arrays)
- {
- printf("la matrice e'\n\n");
- for (int i = 0; i < r; i++)
- {
- for (int j = 0; j < c; j++)
- {
- printf("%d ", matrix[i][j]);
- }
- printf("\n");
- }
- printf("\n");
- printf("l'array principale e'\n");
- for (int i = 0; i < r; i++)
- {
- printf("%d ", arrayp[i]);
- }
- printf("\n\n");
- printf("l'array secondario e'\n");
- for (int i = 0; i < r; i++)
- {
- printf("%d ", arrays[i]);
- }
- printf("\n");
- }
- int **alloc2(int *r, int *c)
- {
- int **matrix2 = 0;
- int righe = 0;
- int colonne = 0;
- righe = *r / 2;
- colonne = righe;
- matrix2 = (int**)malloc(righe * sizeof(int));
- for(int i = 0; i < *r; i++)
- {
- matrix2[i] = (int*)malloc(colonne * sizeof(int));
- }
- if (matrix2 == NULL)
- {
- printf("errore di allocazione\n");
- }
- return matrix2;
- }
- void trasporto(int *arrayp, int *r, int *c, int **matrix2)
- {
- int cont = 0;
- for (int i = 0; i < *r/2; i++)
- {
- for (int j = 0; j < *c/2; j++)
- {
- matrix2[i][j] = arrayp[cont];
- cont++;
- }
- }
- }
- void visualizza(int **matrix2, int *r, int *c)
- {
- printf("la seconda matrice e'\n");
- for (int i = 0; i < *r/2; i++)
- {
- for (int j = 0; j < *c/2; j++)
- {
- printf("%d ", matrix2[i][j]);
- }
- printf("\n");
- }
- }
Add Comment
Please, Sign In to add comment