#include<iostream>
using namespace std;
main()
{
unsigned char znaki[256];
string a,b="";
for(int i=0; i<256; i++)
{
znaki[i]=i;
}
while(getline(cin,a))
{
a.append(" ");
a[a.length()-1]=10;
b=b+a;
}
for(int i=0; i<=255; i++)
{
int s=0;
for(int j=0; j<b.length(); j++)
{
if(znaki[i]==b[j]) s++;
}
if(s>0) cout<<i<<" "<<s<<endl;
}
}
Co ja tu mam źle? ... Niby wszystko działa jak ta lala ale pisze mi że błędna odpowiedź...[/code]
W tym zadaniu nalezu uzyc rozszerzonej ascii tlyko nie mam pojecia jak ja "wlaczyc"
Moj kod(super prosty i niezawodny dla standardowej ascii):
#include <iostream>
#include <string>
using namespace std;
int main()
{
int t[200];
for(int i = 0; i < 127;i++){t[i]=0;}
string str;
while(getline(cin,str) && (cin.eof() == false))
{
for(int i=0; i < str.length(); i++)
{
t[str[i]]++;
if(str[i]=='ó'){t[162]++;}
}
t[10]++;
}
for(int i=0; i < 127;i++)
{
if(t[i] != 0){cout << i<< " " << t[i] << endl;}
}
}
Ktos ma pomysl jkaby to przerzucic na extended ascii?
Możę mi ktoś powiedzieć czemu ten program nie działa? Właściwie to uż wiem czemu ale nie wiem jak to naprawić, polskie znaki czyta jako jakieś krzaczki.
#include <iostream>
using namespace std;
int main()
{
int tab[256];
unsigned char znak;
for(int i = 0; i < 256; i++) tab[i]=0;
while(scanf("%c", &znak)!=EOF) tab[znak]++;
for(int i = 0; i < 256; i++) if(tab[i] != 0) cout << i << ' ' << tab[i] << endl;
return 0;
}
pomoże ktoś?
Nie za bardzo wiem jakma to zrobić unią, zrobiłem więc strukturę, ale dalej ten sam błąd
#include <iostream>
using namespace std;
struct badaj
{
unsigned char znak;
int ile;
};
int main()
{
badaj tab[256];
unsigned char znak;
for(int i = 0; i < 256; i++)
{
tab[i].znak = static_cast<char>(i);
tab[i].ile = 0;
}
while(scanf("%c", &znak)!=EOF) tab[static_cast<int>(znak)].ile++;
for(int i = 0; i < 256; i++) if(tab[i].ile != 0) cout << static_cast<int>(tab[i].znak) << ' ' << tab[i].ile << endl;
return 0;
}
tab1[int z unii]++;
tab2[int z unii]= int z unii;
No to masz małą podpowiedź.
union un
{
signed char;
signed int;
};
int tablica[tutaj Twoja wielkość tablicy];
while(cin..........)tablica[int z unii ]++;
for(int a = 0; a < Twoja wielkość tablicy; ++a)
tutaj tylko wyświetlanie
Wystarczyła nawet jedna tablica.
Jakie to proste.
a czy zastanowiłeś się jak działa ten fragment kodu ?
static_cast<unsigned int>(Ciag_znakow[i])
przeczytaj dokładnie fragment jakiegoś podręcznika o c/c++ o typach danych, ich zakresach i konwersjach
a co do twojej wypowiedzi o programie, to masz rację, kod jest banalny i logiczny, natomiast nie MUSI działać, a nawet nie może , bo jest błędny
a jeżeli w przyszłości też będziesz tak uważał, to lepiej abyś zajął się czymś innym niż programowanie
Suggested Topics
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
Hosting a competition on SPOJ | Off-topic | 1 | 133 | Apr 9 |