-
مشکل در مسئله HaCKeRS
دوستان خوبم سلام
این مسئله ی هکرهای ای سی امه...( باید هر کاربر یه جمله رو وارد کنه از روی این جمله تشخیص بدیم که هکر هست یا نه..یعنی باید ببینیم به فرمت هکرها نوشته یا نه .فرمت هکرها هم اینطوریه که حروف بی صدا بزرگ و حروف صدادار کوچیک نوشته میشن...
من توی این برنامه اول هر کلمه از جمله رو جدا می کنم بعد برای هر کلمه تابع f رو فراخانی می کنم تابع چک می کنه که
اگر حرف بزرگ باشه و صدادار باشه (فرمت غلطه) 1 رو return می کنه تا جز غلط ها حساب کنه..
اگر حرف کوچیک باشه و صدادار نباشه (فرمت غلطه) 1 رو return می کنه تا جز غلط ها حساب کنه..
در غیر این صورت 0 رو return می کنه...
برای حروف بی صدا مشکلی نداره اما برای صدادارها مشکل داره...:41:
[PHP]#include<iostream>
#include<cstring>
using namespace std;
int f ( char );
void main()
{
int N;cout<<"Enter number of participant:"; cin>>N;
for ( int i=1; i <= N ; i++ )
{
char string1 [ 100 ] ;
cin.ignore();
cin.getline( string1 , 99 , '\n' );
char* tokenPtr;
int j=0,c=0;
tokenPtr = strtok ( string1 , " " );
while( tokenPtr != NULL )
{
for ( int k=0 ; k < strlen ( tokenPtr );k++ )
{
char ch = tokenPtr [ k ];
//if ( k == 0 )
c += f( ch );
cout<<ch<<" "<<c<<endl;
if ( c == 1 )
break;
}
j++;
tokenPtr = strtok (NULL , " " );
}
cout<< j-c <<" out of " << j<<endl;
}
}
int f ( char ch )
{
if (( ch >= 'a' && ch <= 'z' ) &&
( ch != 'a' || ch != 'e' || ch != 'i' || ch != 'o' || ch != 'u'))
return 1;
if (( ch >= 'A' && ch <= 'Z') &&
( ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U'))
return 1;
else
return 0;
}[/PHP]
-
سلام .
بهتر نبود تو این تاپیک مطرحش می کردین ؟
کد:
http://forum.p30world.com/showthread.php?t=366869
ولی به هر حال شما باید اول از همه چک کنین که حرف اول کلمه چه صدادار باشه چه بی صدا باید حرف بزرگ باشه .
فکر کنم اینو تو برنامه لحاظ نکردین .