• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zamiana wierszy miejscami w macierzy

Aruba Cloud - Virtual Private Server VPS
0 głosów
101 wizyt
pytanie zadane 2 grudnia 2024 w C i C++ przez adam234345 Początkujący (400 p.)

Hej, chciałbym zamienić ostatni wiersz z przed ostatnim, ale nie mam pojęcia jak to zrobić, temp tutaj nie zadziała, ponieważ używam wskaźników, jak inaczej mógłbym to zrobić?

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>



int main()
{



    int n;
    printf("Podaj n\n");
    scanf("%d", &n);


	int **p, suma=0,sumaprawej=0;
    p=(int**)malloc(n*sizeof(int*));

    for(int i=0; i<n; i=i+1)
    {
       *(p+i)=(int*)malloc(n*sizeof(int));
    }



	for(int i=0; i<n; i=i+1)
    {
        for(int j=0; j<n; j=j+1)
    {
        *(*(p+i)+j)=(i+1)*(j+1);
        printf("%3.d ", *(*(p+i)+j) );
    }
        printf("\n");
    }

    printf("\n");

    for(int i=0; i<n; i=i+1)
    {
        for(int j=0; j<n; j=j+1)
    {

    
        printf("%3.d ", *(*(p+i)+j) );
    }
        printf("\n");
    }





   for(int i=0; i<n; i=i+1)
    {
        free(*(p+i));
    }

    free(p);






    return 0;
}


 

komentarz 2 grudnia 2024 przez mokrowski Mędrzec (158,200 p.)
BTW1: Tak na marginesie, alokowanie z dynamicznymi (malloc) wierszami takiej macierzy, jest mało efektywne. W 80/95 % przypadków lepiej alokować w trybie pamięci płaskiej (czyli pamięć sizeof(type) * N * M) i wyliczać wiesz/kolumnę. Oczywiście jeśli się uczysz lub polecono Ci tak zrobić (lub są inne wymagania), uznaj uwagę za zbędną :)

BTW2: Nie sprawdzasz czy powiodła się alokacja. Jak się nie powiedzie, malloc zwraca NULL.

1 odpowiedź

+1 głos
odpowiedź 2 grudnia 2024 przez WojAbuk Gaduła (3,000 p.)

Jak ci tmp nie zadziała?

int *tmp=p[n-2];
p[n-2]=p[n-1];
p[n-1]=tmp;

Wskaźnik to zwykła zmienna zmieniasz miejscami wskaźniki na wiersze.

komentarz 2 grudnia 2024 przez adam234345 Początkujący (400 p.)

@WojAbuk, teraz już działa w złym miejscu widocznie umieszczałem te linijki wielkie dzięki

Podobne pytania

0 głosów
1 odpowiedź 2,384 wizyt
0 głosów
1 odpowiedź 585 wizyt
+1 głos
0 odpowiedzi 718 wizyt
pytanie zadane 9 lutego 2021 w C# przez XavRock Obywatel (1,390 p.)

93,327 zapytań

142,323 odpowiedzi

322,397 komentarzy

62,658 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...