pomoc w sortowaniu tablicy

0

Witam mam zadanie
macierz kwadratowa elementy pod przekątną podzielne przez 5 zapisać do nowej tablicy i posegregować.

Zrobiłem wszystko poza segregowaniem czy ktoś by pomógł

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



int main (void)
{
	int wymiar;
	int z;
	int x=0;
		
		printf("Podaj wymiar tablicy:");
		scanf("%d", &wymiar);
	
	int i,j;
	int A[wymiar][wymiar];
    
	
		for(i=0;i<wymiar;i++){
			for(j=0;j<wymiar;j++){
				printf("\nPodaj A[%d][%d]: " , i+1,j+1);
                scanf("%d", &A[i][j]);
			}
		}
		printf("Oto nasza macierz:\n");
		for(i=0;i<wymiar;i++){
			for(j=0;j<wymiar;j++){
				printf(" %d",A[i][j]);
			}
			printf("\n");
		}
		
 for(i=0; i<wymiar;i++){
        for(j=0;j<=i;j++){  
            if((j<=i) && (A[i][j]%5 == 0)){
				x++;
            z= A[i][j];
            }
            }
            
    }
    

    printf("Podzielnych przez 5 pod przekatna jest %d \n", x);
    
printf("tablica jednowymiarowa przed segregowaniem:\n");
    for(i=0; i<wymiar;i++){
        for(j=0;j<=i;j++){

				printf(" %d",A[i][j]);
			}}
			printf("\nPo segregowaniu\n");
			
			
			
	    
    
    
    
		
      
    system("pause");
    return 0;   
} 
0

Miałeś zdaje się te elementy pod przekątną podzielne przez 5 zapisać do osobnej tablicy? Moim zdaniem tutaj są dwa podejścia:

  1. Najpierw obliczasz ich liczbę (jak teraz), tworzysz odpowiednią tablicę i zapisujesz je w kolejnym przebiegu pętli.
  2. Tworzysz tablicę o maksymalnym możliwym rozmiarze (tj. liczba wszystkich elementów pod przekątną) a następnie wpisujesz tam tylko te, które są podzielne. Zapamiętujesz też ich liczbę.

Do sortowania możesz zapewne użyć qsort: http://www.cplusplus.com/reference/clibrary/cstdlib/qsort/

0

Ale najpierw to ty sobie poczytaj jak deklaruje się tablice dynamiczne...

1 użytkowników online, w tym zalogowanych: 0, gości: 1