Mateusz_Frąckowiak - 2007-11-29 17:39:13

wersja nie testowana - wszelkie wyszukiwanie błędów mile widziane ;)

Kod:

#include <iostream>

using namespace std;

/*********************************** Zliczanie jedynek *********************/
int zliczanie(int a)
{
int b,c,d,e,f;
int mask1=1431655765, mask2=858993459, mask3=252645135,mask4=16711935,mask5=65535;
b=(a & mask1)+((a & ~(mask1))>>1);
c=(b & mask2)+((b & ~(mask2))>>2);
d=(c & mask3)+((c & ~(mask3))>>4);
e=(d & mask4)+((d & ~(mask4))>>8);
f=(e & mask5)+((e & ~(mask5))>>16);  
return (f); 
}

/**************************************************************************/

/************************** Sortowanie ze przez wstawianie ****************/
void sortowanie(int tab[])
{
int il[10];
for (int i=0; i<10; i++)
    {
    il[i]=zliczanie(tab[i]); 
    }
for (int i=1; i<10; i++)
    {
    int q,w,k=1;
    q=il[i];
    w=tab[i];
    while (q<il[i-k]&&(i-k+1!=0))
          {
          il[i-k+1]=il[i-k];
          tab[i-k+1]=tab[i-k]; 
          k++;
          }  
    il[i-k+1]=q;
    tab[i-k+1]=w;   
    }  
for (int i=0;i<10;i++)              // drukowanie wyników
    {
    cout << tab[i] << "   ";     
    }        
}

/****************************************************************************/


int main ()
{
int tab[10];
for (int i=0;i<10;i++)
    {
    cout << "podaj liczbę nr " << i+1 << ": ";
    cin >> tab[i];
    } 
sortowanie(tab);
system ("pause");
}
GotLink.plwodomierze wrocław biuro rachunkowe www.otokot.pl