Cytat:
Napisany przez misiek767
Ok napisalem cos takiego
#include <cstdlib>
#include <iostream>
#include <conio.h>
using namespace std;
int main(int argc, char *argv[])
{
int tab[256]={0};
int m; <-------------------------
char tabi[m]; <------------------------- CO TE LINIE MAJA ROBIC ??
char itab[m]; <-------------------------
int iMin,iMax,iMinInd,iMaxInd;
int i;
int j=0;
char z;
while (z!=13){ <------------------------- ZAMIAST 13 DALBYM '\n' lub '\0' - 13 ??
z=getche();
itab[j]=z; <------------------------- JAKIEJ WIELKOSCI JEST itab ??
j++;
}
cout<<endl;
for(i=0; i<=j; i++) <------------------------- DLACZEGO TUTAJ DO j ??
tab[itab[i]]++;
for(i=0; i<=(j-2); i++){ <------------------------- A TUTAJ DO j-2 ??
cout<<itab[i]<<" "<<tab[itab[i]]<<endl;}
iMin=iMax=tab[itab[0]];
for (i=0;i<=(j-1);i++){ if (tab[itab[i]]>=iMax){iMax=tab[itab[i]];iMaxInd=itab[i];}}
^^^^^ A TU LICZYSZ do j-1 POZA TYM POWINNO WYGLADAC RACZEJ TAK:
iMin = iMax = tab[itab[0]]; //krotnosc
iMaxInd = iMinInd = itab[0]; //znak
for (i=1;i<=j;i++){ if (tab[itab[i]]>=iMax){iMax=tab[itab[i]];iMaxInd=itab[i];}}
cout<<endl;
cout<<"najczesciej wystepowaly"<<endl;
cout<<char(iMaxInd)<<" "<<iMax<<" razy"<<endl;
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
No i prawie dziala ale jest program z liczeniem max
chodzi o to ze jak jest kilka liter ktore wystapily najwiecej razy np w zdaniu
"ttttoooo" to on wyswietla tylko ta ostatnia
|
Ja to bym zreszta wogole robil inaczej
Acha ... zeby ten Twoj problem rozwiazac to musisz po prostu wziac iMax przed ta seria cout i przeleciec tablice i wypisac kazdy znak o krotnosci iMax.