[C] Histogram

wirownia

Nowicjusz
Dołączył
13 Grudzień 2015
Posty
1
Punkty reakcji
0
Witajcie,
muszę napisać program, który uzupełni tablicę 100-elementową losowymi liczbami z niewiadomego przedziału (dodatnie i ujemne), później znajdzie wartość min i max oraz zliczyć ile razy każda wartość występuje - czyli histogram.
Na razie napisałam coś takiego, ale nie liczy poprawnie częstości. Pomocy!!


#define N 10
#define M 20
#define L 10
#include<time.h>
#include<stdio.h>


int main()
{ srand(time(NULL));
int a[N], k, i, min, max;
int suma=0;
int n[suma];

for(k=0; k<N; k++)
a[k]=rand()%(10+5+1)-5;
for(k=0; k<N; k++)
printf("%d\t", a[k]);

min = a[0];
max=a[0];
for (i=0; i<N; i++)
{
if(a<min)
min=a;
if(a>max)
max=a;
}

printf ("\nnajwieksza wartosc to: %d ", max);
printf ("\nnajmniejsza wartosc to: %d ", min);
if (min<0 && max<0)
suma=-min-max+1;
else if(min<0)
suma=-min+max+1;
else
suma=max-min+1;
printf ("\nrozpietosc histogramu to: %d", suma);
printf ("\nHistogram\nWartosci:");
for(i=min;i<=max;i++)
printf ("%d\t", i);
printf ("\nCzestosc: ");
for(i=min;i<suma;i++)
n=0;
for (k=min; k<suma; k++)
{
for (i=0; i<N; i++)
if (a==k)
n[k]++;}
for(k=min;k<suma;k++)
printf ("%d\t", n[k]);
return 0; }


wirownia napisał:
Witajcie,
muszę napisać program, który uzupełni tablicę 100-elementową losowymi liczbami z niewiadomego przedziału (dodatnie i ujemne), później znajdzie wartość min i max oraz zliczyć ile razy każda wartość występuje - czyli histogram.
Na razie napisałam coś takiego, ale nie liczy poprawnie częstości. Pomocy!!


<code=c>#define N 10
#define M 20
#define L 10
#include<time.h>
#include<stdio.h>


int main()
{ srand(time(NULL));
int a[N], k, i, min, max;
int suma=0;
int n[suma];

for(k=0; k<N; k++)
a[k]=rand()%(10+5+1)-5;
for(k=0; k<N; k++)
printf("%d\t", a[k]);

min = a[0];
max=a[0];
for (i=0; i<N; i++)
{
if(a<min)
min=a;
if(a>max)
max=a;
}

printf ("\nnajwieksza wartosc to: %d ", max);
printf ("\nnajmniejsza wartosc to: %d ", min);
if (min<0 && max<0)
suma=-min-max+1;
else if(min<0)
suma=-min+max+1;
else
suma=max-min+1;
printf ("\nrozpietosc histogramu to: %d", suma);
printf ("\nHistogram\nWartosci:");
for(i=min;i<=max;i++)
printf ("%d\t", i);
printf ("\nCzestosc: ");
for(i=min;i<suma;i++)
n=0;
for (k=min; k<suma; k++)
{
for (i=0; i<N; i++)
if (a==k)
n[k]++;}
for(k=min;k<suma;k++)
printf ("%d\t", n[k]);
return 0; }
</code>


 
Do góry