Last active
August 29, 2015 13:57
-
-
Save mariusmg2/9365462 to your computer and use it in GitHub Desktop.
Teme AC->TP.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <stdio.h> | |
| #include <stdlib.h> | |
| int main(int argc, char **argv) { | |
| int n, j = 0, i; | |
| printf("\nValoarea lui n: "); scanf("%d", &n); | |
| int *data = malloc(n * sizeof(*data)); | |
| int *data_aux = malloc(n * 2 * sizeof(*data)); | |
| for(i = 0; i < n; i++) { | |
| printf("data[%d]= ", i); scanf("%d", (data + i)); | |
| } | |
| for(i = 0; i < n; i++) { | |
| data_aux[j++] = data[i]; | |
| *(data_aux + j++) = (*(data + i) % 2 == 0) ? 1 : 0; | |
| } | |
| n = j; | |
| free(data); | |
| printf("\nNoul array: "); | |
| for(i = 0; i < n; i++) { | |
| printf("%d ", data_aux[i]); | |
| } | |
| free(data_aux); | |
| printf("\n\n"); | |
| /** | |
| * Problema 2. | |
| * | |
| */ | |
| n = i = 0; | |
| data = NULL; | |
| data_aux = NULL; | |
| printf("\nIntroduceti un sir de numere terminat cu CTRL+D/CTRL+Z.\n"); | |
| while(scanf("%d", &n) != EOF) { | |
| i++; | |
| data_aux = realloc(data, i * sizeof(int)); | |
| data = data_aux; | |
| data[i - 1] = n; | |
| } | |
| n = i; | |
| printf("\nNumerele introduse: "); | |
| for(i = 0; i < n; i++) { | |
| printf("%d ", data[i]); | |
| } | |
| // Eliminarea valorilor pare. | |
| for(i = 0; i < n; i++) { | |
| if(data[i] % 2 == 0) { | |
| for(j = i; j < n; j++) { | |
| data[j] = data[j + 1]; | |
| } | |
| n--; | |
| i--; | |
| } | |
| } | |
| printf("\nFara numerele pare: "); | |
| for(i = 0; i < n; i++) { | |
| printf("%d ", data[i]); | |
| } | |
| free(data); | |
| free(data_aux); | |
| printf("\n\n"); | |
| return 0; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Se da o matrice patratica de dim. N (N <= 10). | |
| * - Sa se verifice daca matricea este simetrica fata de diag. principala. | |
| * - Sa se calculeze suma elementelor de pe diagonala principala. | |
| */ | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| int readMatrix(int*, int, int); | |
| int printMatrix(int*, int, int); | |
| int isSimetric(int*, int); | |
| int sumPrincDiag(int*, int); | |
| int main(int argc, char **argv) { | |
| int dim; | |
| printf("\nIntroduceti dimensiunea matricii (n x n): "); scanf("%d", &dim); | |
| printf("Introduceti matricea: \n"); | |
| int *matr = malloc(dim * dim * sizeof(int *)); | |
| readMatrix(matr, dim, dim); printf("\nMatricea citita este: \n\n"); | |
| printMatrix(matr, dim, dim); | |
| printf("\nMatricea%s este simetrica!", isSimetric(matr, dim) ? "" : " nu"); | |
| printf("\nSuma elementelor de pe diag. principala este: %d", sumPrincDiag(matr, dim)); | |
| free(matr); | |
| printf("\n\n"); | |
| return 0; | |
| } | |
| int readMatrix(int *data, int rows, int columns) { | |
| int i, j; | |
| for(i = 0; i < rows; i++) { | |
| for(j = 0; j < columns; j++) { | |
| printf("matr[%d][%d] = ", i, j); scanf("%d", data + (i * columns + j)); | |
| } | |
| } | |
| return 0; | |
| } | |
| int printMatrix(int *data, int rows, int columns) { | |
| int i, j; | |
| for(i = 0; i < rows; i++) { | |
| for(j = 0; j < columns; j++) { | |
| printf("%d ", *(data + (i * columns + j))); | |
| } | |
| printf("\n"); | |
| } | |
| return 0; | |
| } | |
| int isSimetric(int *data, int size) { | |
| int i, j; | |
| for(i = 0; i < size; i++) { | |
| for(j = 0; j < size; j++) { | |
| if(*(data + (i * size + j)) != *(data + (j * size + i))) { | |
| return 0; | |
| } | |
| } | |
| } | |
| return 1; | |
| } | |
| int sumPrincDiag(int *data, int size) { | |
| int i, sum = 0; | |
| for(i = 0; i < size; i++) { | |
| sum += *(data + (i * size + i)); | |
| } | |
| return sum; | |
| } | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * Se da o matrice cu M linii si N coloane. | |
| * - Sa se construiasca inca o coloana in matrice care sa contina suma elementelor de pe fiecare linie. | |
| * - Sa se det. elem. max. de pe fiecare coloana, sa se memoreze valorile intr-un vect, apoi sa se afiseze. | |
| */ | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <limits.h> | |
| int readMatrix(int*[], int, int); | |
| int sumArray(int*, int); | |
| int printMatrix(int*[], int, int); | |
| int main(int argc, char **argv) { | |
| int rows, columns, i, j; | |
| printf("\nCate linii are matricea? "); scanf("%d", &rows); | |
| printf("Cate coloane are matricea? "); scanf("%d", &columns); | |
| int **matrix = malloc(rows * sizeof(int*)); | |
| for(i = 0; i < rows; i++) { | |
| matrix[i] = malloc(columns * sizeof(int) + sizeof(int)); // +1 for the sum column. | |
| } | |
| readMatrix(matrix, rows, columns); | |
| printf("\nMatricea tocmai introdusa este: \n\n"); | |
| printMatrix(matrix, rows, columns); | |
| // Cerinta I: | |
| for(i = 0; i < rows; i++) { | |
| matrix[i][columns] = sumArray(matrix[i], columns); | |
| } | |
| printf("\nCu suma elementelor de pe fiecare linie pusa pe coloane: \n\n"); | |
| printMatrix(matrix, rows, columns + 1); | |
| // Cerinta II: | |
| int max = INT_MIN, u = 0; | |
| int *maxColumns = malloc(columns * sizeof(int)); | |
| for(i = 0; i < columns; i++) { | |
| for(j = 0; j < rows; j++) { | |
| if(matrix[j][i] > max) { | |
| max = matrix[j][i]; | |
| } | |
| } | |
| maxColumns[u++] = max; | |
| max = INT_MIN; | |
| } | |
| printf("\nElementele maxime de pe fiecare coloana a matricii anterioare sunt: "); | |
| for(i = 0; i < u; i++) { | |
| printf("%d ", maxColumns[i]); | |
| } | |
| printf("\n\n"); | |
| for(i = 0; i < rows; i++) { | |
| free(matrix[i]); | |
| } | |
| free(matrix); | |
| free(maxColumns); | |
| return 0; | |
| } | |
| int readMatrix(int *data[], int rows, int columns) { | |
| int i, j; | |
| for(i = 0; i < rows; i++) { | |
| for(j = 0; j < columns; j++) { | |
| printf("matr[%d][%d] = ", i, j); scanf("%d", *(data + i) + j); | |
| } | |
| } | |
| return 0; | |
| } | |
| int sumArray(int *data, int size) { | |
| int i, sum = 0; | |
| for(i = 0; i < size; i++) { | |
| sum += *(data + i); | |
| } | |
| return sum; | |
| } | |
| int printMatrix(int *data[], int rows, int columns) { | |
| int i, j; | |
| for(i = 0; i < rows; i++) { | |
| for(j = 0; j < columns; j++) { | |
| printf("%d ", data[i][j]); | |
| } | |
| printf("\n"); | |
| } | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment