Witam, od wczoraj się męcze z zadaniem ze spoj'a:
,, Napisz program, który liczy, ile wyrazów i liczb znajduje się w podanej linii. "
Program napisałem, podaje dane wszystko sprawdza i u mnie jest OK.
Gdy wysyłam dla spoja ten mój program, wyskakuje mi, że jest ,,błędna odpowiedź" do zmiennej wejściowej. Wg. mnie wszystko jest perfect nie wiem wtf ;/
podsyłam kod:
#include <iostream>
using namespace std;
void zerowanie(char *wsk, int rozm)
{
for(int m=0;m<rozm; m++)
{
*(wsk++)=0;
}
}
int main(void)
{
const int DLUGOSC=50;
char tekst[DLUGOSC];
zerowanie(tekst, DLUGOSC);
while(cin.getline(tekst, DLUGOSC))
{
int liczby=0;
int wyrazy=0;
for(int i=0; tekst[i]!=0;i++)
{
// INNE ZNAKI
if( ((tekst[i]>=int(33)) && (tekst[i]<=int(47))) || ((tekst[i]>=int(58)) && (tekst[i]<=int(64))) || ((tekst[i]>=int(91)) && (tekst[i]<=int(96))) || ((tekst[i]>=int(123)) && (tekst[i]<=int(127))))
{
while(tekst[i]!=int(32))
{
i++;
if(tekst[i]==0) break;
}
continue;
}
//WYRAZY
if( ((tekst[i]>=int(65)) && (tekst[i]<=int(90))) || ((tekst[i]>=int(97)) && (tekst[i]<=int(122))))
{
wyrazy++;
while(tekst[i]!=int(32))
{
i++;
if(tekst[i]==0) break;
}
--i;
continue;
}
//LICZBY
if( (tekst[i]>=int(48)) && (tekst[i]<=int(57)))
{
liczby++;
while(tekst[i]!=int(32))
{
i++;
if(tekst[i]==0) break;
}
--i;
continue;
}
}
if( (liczby==0) && (wyrazy==0))
{
zerowanie(tekst, DLUGOSC);
continue;
}
cout << liczby << ' ' << wyrazy << endl;
zerowanie(tekst, DLUGOSC);
}
}
Powiedzcie co jest z moim programem źle?