Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <malloc.h>
- #define M 3
- #define N 4
- int main()
- {
- int i, j, k, f, Mcount;
- float **A;
- A = malloc(M*sizeof(float*));
- if(A == NULL)
- {
- printf("Ошибка выделения памяти");
- return 100;
- }
- for(i = 0; i < M; i++){
- A[i] = (float*)calloc(N, sizeof(float*)); //выделение памяти под строки
- if(A+i == NULL){
- printf("Memory is not allocated"); //проверка того выделилась ли память
- for(j = 0; j < i; j++) free(*(A+j));
- free(A);
- exit(0);
- }
- }
- for (i = 0; i < M; i++){ // Ввод элементов массива
- for(j = 0; j < N; j++){
- printf("A[%d][%d] = ", i, j);
- if(scanf("%f", *(A + i) + j) != 1){
- printf("Error, enter digits\n");
- j--;
- fflush(stdin);
- }
- }
- }
- // for(i = 1; i < M; i++)
- // A[i]=A[i-1] + N;
- // Mcount = M;
- printf("Your matrix:\n");
- for(i = 0; i < M; i++){ //Вывод элементов массива
- for(j = 0; j < N; j++){
- printf("%10.2f ", *(*(A + i) + j));
- }
- printf("\n");
- }
- // for(i = 1; i < M; i++)
- // A[i]=A[i-1] + N;
- // Mcount = M;
- // for(i = 0; i < M; i++)
- // {
- // for(j = 0; j < N; j++)
- // {
- // printf ("A[%d][%d] = ", i, j );
- // while(scanf ("%f", *(A+i)+j)!=1)
- // {
- // fflush(stdin);
- // printf("Ошибка\n");
- // printf ("A[%d][%d] = ", i, j );
- // }
- // }
- // }
- for(i = 0; i < M; i++)
- {
- for(j = 0; j < N; j++)
- {
- if(*(*(A+i)+j) == 1)
- {
- for (f = i; f < M-1; f++)
- {
- for (k = 0; k < N; k++)
- {
- *(*(A+f)+k) = *(*(A+(f+1))+k);
- *(*(A+(f+1))+k) = 0;
- }
- }
- i--;
- j--;
- Mcount--;
- }
- }
- }
- if(Mcount == 0)
- {
- printf("Матрица пустая");
- return 0;
- }
- printf("new matrix:\n");
- for(i = 0; i < M-1; i++)
- {
- for(j = 0; j < N; j++)
- printf ("%10.2f", *(*(A+i)+j));
- printf("\n");
- }
- for(i = 0; i < M; i++)
- free(*(A+i));
- free(A);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement