[C++] wskaźniki, sortowanie bąbelkowe
[C++] wskaźniki, sortowanie bąbelkowe
Witam,
mam problem z napisaniem programu, który używając wskaźników posortuje bąbelkowo tablicę \(\displaystyle{ {1, 5, 3, 6, 4, 7}}\).
Z góry dziękuję za pomoc
mam problem z napisaniem programu, który używając wskaźników posortuje bąbelkowo tablicę \(\displaystyle{ {1, 5, 3, 6, 4, 7}}\).
Z góry dziękuję za pomoc
[C++] wskaźniki, sortowanie bąbelkowe
Właśnie nie wiem. Umiem sortowanie, myślę, że umiem wskaźniki, a wypisuje tablicę taką, jaką była.-- 15 maja 2012, o 20:25 --Program:
Kod: Zaznacz cały
#include<iostream>
#include<cstdio>
using namespace std;
void zamien(int a, int b)
{
int temp=a;
a=b;
b=temp;
}
int main()
{
int tab[]={1,5,3,6,4,7};
int *wsk;
wsk=&tab[0];
int n=6;
for (int j=n-1; j>0; j--)
{
for (int i=0; i<j;i++)
{if (*wsk > *(wsk+1))
zamien (*wsk, *(wsk+1));
}
}
for (int k=0; k<6; k++)
{cout<<tab[k];
}
getchar();
return 0;
}
- MichalPWr
- Użytkownik
- Posty: 1625
- Rejestracja: 29 wrz 2010, o 15:55
- Płeć: Mężczyzna
- Lokalizacja: Leszno
- Podziękował: 7 razy
- Pomógł: 387 razy
[C++] wskaźniki, sortowanie bąbelkowe
Napisane na szybko i średnio finezyjnie.
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
void wys(int *wsk,int n);
void sortowanie(int *wsk, int n);
int main()
{int tab[]={1,5,3,6,4,7};
int *wsk,n;
wsk=tab;
n=sizeof(tab)/4;
sortowanie(wsk,n);
wys(wsk,n);
system("PAUSE");
return 0;
}
void wys(int *wsk, int n){
int i;
for(i=0;i<n;i++) {
printf("%d
",*(wsk+i));
}}
void sortowanie(int *wsk, int n){
int i,j,c;
for(i=0;i<n;i++){
for(j=0;j<n-1;j++){
if(*(wsk+j)>*(wsk+j+1)){
c=*(wsk+j);
*(wsk+j)=*(wsk+j+1);
*(wsk+j+1)=c;
}}}}
[C++] wskaźniki, sortowanie bąbelkowe
Jestem raczej początkująca i połowy z twojego programu nie rozumiem...
Potrafiłbyś delikatnie przerobić mój, żeby działał?
Jeśli napiszę twój, nauczyciel będzie wiedział że jest przepisany.
Potrafiłbyś delikatnie przerobić mój, żeby działał?
Jeśli napiszę twój, nauczyciel będzie wiedział że jest przepisany.
[C++] wskaźniki, sortowanie bąbelkowe
Kod: Zaznacz cały
n=sizeof(tab)/4;
system("PAUSE");
printf("%d
",*(wsk+i));
-
- Użytkownik
- Posty: 795
- Rejestracja: 2 cze 2010, o 08:56
- Płeć: Mężczyzna
- Lokalizacja: Tarnów
- Podziękował: 14 razy
- Pomógł: 66 razy
[C++] wskaźniki, sortowanie bąbelkowe
agggnes,
sizeof(tab)
zwraca wielkośc tablicy, system("pause");
zatrzymuje program po to, żeby się okienko konsoli nie zamknęło zaraz po wykonaniu programu, printf
wypisuje to co się mu przekaże, w tym przypadku dokładnie kolejne elementy tablicy
Ostatnio zmieniony 15 maja 2012, o 21:25 przez Afish, łącznie zmieniany 1 raz.
Powód: Stosuj tagi.
Powód: Stosuj tagi.
-
- Moderator
- Posty: 2828
- Rejestracja: 15 cze 2008, o 15:45
- Płeć: Mężczyzna
- Lokalizacja: Seattle, WA
- Podziękował: 3 razy
- Pomógł: 356 razy
[C++] wskaźniki, sortowanie bąbelkowe
Kod: Zaznacz cały
void zamien(int a, int b)
{
int temp=a;
a=b;
b=temp;
}
[C++] wskaźniki, sortowanie bąbelkowe
Dopisałam przed a, b w funkcji zamień, a program wciąż wypisuje nieposortowaną tablicę.
Kod: Zaznacz cały
&
-
- Moderator
- Posty: 2828
- Rejestracja: 15 cze 2008, o 15:45
- Płeć: Mężczyzna
- Lokalizacja: Seattle, WA
- Podziękował: 3 razy
- Pomógł: 356 razy
[C++] wskaźniki, sortowanie bąbelkowe
Bo nigdzie nie modyfikujesz zmiennej
wsk
. Technicznie rzecz biorąc, w tym momencie Twój program sortuje dwa pierwsze elementy tablicy.