[C] Histogram
Ostatnio zmodyfikowano 2015-12-13 23:14
wirownia Temat założony przez niniejszego użytkownika |
[C] Histogram » 2015-12-13 19:21:04 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[i]<min) min=a[i]; if(a[i]>max) max=a[i]; }
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[i]=0; for (k=min; k<suma; k++) { for (i=0; i<N; i++) if (a[i]==k) n[k]++;} for(k=min;k<suma;k++) printf ("%d\t", n[k]); return 0; } [/code] [/i][/i][/i]
|
|
pekfos |
» 2015-12-13 20:09:26 Popraw formatowanie postu. int suma = 0; int n[ suma ]; |
Nie można tak. |
|
wirownia Temat założony przez niniejszego użytkownika |
» 2015-12-13 21:03:14 ok zdefiniowalam tablice int n[suma] pod koniec ale i tak nie działa |
|
carlosmay |
» 2015-12-13 23:14:25
int suma = 0; int n[ suma ];
Nie można tak.
|
oznacza, że tablica musi mieć z góry określoną długość. const int n = 10; int tab[ n ];
lub dynamicznie int n; cin >> n; int * p_tab = new int[ n ];
delete[] p_tab;
|
|
« 1 » |