#include <stdio.h>
#include <stdlib.h>
// Histogram, nie trzeba zerować bo w globalnym
#define MAX_NUM 500
int histogram[ MAX_NUM ] ;
void hist( int * x, size_t x_len ) {
for ( size_t i = 0 ; i < x_len; i++ ) {
if ( x[ i] >= MAX_NUM ) {
fprintf ( stderr
, "Za duza liczba" ) ;
}
histogram[ x[ i] ] ++;
}
for ( size_t i = 0 ; i < MAX_NUM; i++ )
if ( histogram
[ i
] != 0 ) printf ( "%zu pojawila sie %d\n " , i
, histogram
[ i
] ) ;
}
int main( )
{
int x[ ] = { 4 , 2 , 33 , 29 , 32 , 11 , 43 , 1 , 4 , 10 , 12 , 12 , 32 , 4 } ;
size_t x_len = sizeof x / sizeof x[ 0 ] ;
hist( x, x_len ) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCi8vIEhpc3RvZ3JhbSwgbmllIHRyemViYSB6ZXJvd2HEhyBibyB3IGdsb2JhbG55bQojZGVmaW5lIE1BWF9OVU0gNTAwCmludCBoaXN0b2dyYW1bIE1BWF9OVU0gXTsKCnZvaWQgaGlzdCggaW50ICp4LCBzaXplX3QgeF9sZW4gKSAgewoJCiAgICBmb3IoIHNpemVfdCBpID0gMDsgaSA8IHhfbGVuOyBpKyspICB7CiAgICAJCiAgICAJaWYoIHhbaV0gPj0gTUFYX05VTSApICB7CiAgICAJCQogICAgCQlmcHJpbnRmKCBzdGRlcnIsICJaYSBkdXphIGxpY3piYSIgKTsKICAgIAkJZXhpdCggRVhJVF9GQUlMVVJFICk7CiAgICAJCQogICAgCX0KICAgIAkKICAgIAloaXN0b2dyYW1bIHhbaV0gXSsrOwoKICAgIH0KICAgIAogICAgZm9yKCBzaXplX3QgaSA9IDA7IGkgPCBNQVhfTlVNOyBpKysgKQogICAgICAgIGlmKCBoaXN0b2dyYW1baV0gIT0gMCApICBwcmludGYoICIlenUgcG9qYXdpbGEgc2llICVkXG4iLCBpLCBoaXN0b2dyYW1baV0gKTsKCQp9CgppbnQgbWFpbigpCnsKICAgIGludCB4W10gPSB7NCwgMiwgMzMsIDI5LCAzMiwgMTEsIDQzLCAxLCA0LCAxMCwgMTIsIDEyLCAzMiwgNH07CiAgICAKICAgIHNpemVfdCB4X2xlbiA9IHNpemVvZiB4IC8gc2l6ZW9mIHhbMF07CiAgICBoaXN0KHgsIHhfbGVuICk7CgogICAgcmV0dXJuIDA7Cn0K