PDA

View Full Version : سوال: مشکل در عملکرد یک کد در سی پلاس پلاس



orache
جمعه 09 فروردین 1392, 21:34 عصر
سلام به همه من میخواهم یک برنامه با تابع بازگشتی بنویسم که مشخص کنه رشته palindrome متقارن هست یا نه.الان مشکل این برنامه که من نوشتم چیه? البته این مشکل دوستم هست شما جواب بدین ممنون میشم


#include<iostream>
#include<string>
using namespace std;
int palindrome(char nz[],int first,int last)
{
int i=0;
int tool;
tool=strlen(nz);
for(first=0,last=tool-1;first<=(tool/2);++first,--last)
{
if(nz[first]==nz[last])
i=1;
}

if(i)
return "Palindrome";

else return "Not a palindrome";

}
void main()
{
char nz[80];
cout<<"Enter the string:";
cin>> nz;
palindrome();
}

smemamian
جمعه 09 فروردین 1392, 22:09 عصر
شما دوستان همه در یک دانشگاه محصل هستید ؟!!


http://barnamenevis.org/showthread.php?390841-%DA%A9%D9%85%DA%A9-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-palindrome

orache
شنبه 10 فروردین 1392, 16:31 عصر
نه تاپیکش رو پاک کردن از من پرسید :عصبانی:

learned
پنج شنبه 15 فروردین 1392, 01:46 صبح
سلام به همه من میخواهم یک برنامه با تابع بازگشتی بنویسم که مشخص کنه رشته palindrome متقارن هست یا نه.الان مشکل این برنامه که من نوشتم چیه? البته این مشکل دوستم هست شما جواب بدین ممنون میشم


#include<iostream>
#include<string>
using namespace std;
int palindrome(char nz[],int first,int last)
{
int i=0;
int tool;
tool=strlen(nz);
for(first=0,last=tool-1;first<=(tool/2);++first,--last)
{
if(nz[first]==nz[last])
i=1;}
//این دستوری که اینجا گذاشتی فقط حرف اول و اخر رو مقایسه میکنه اگه یکی باشه i رو 1 میذاره
و چون i از این به بعد هیچوقت صفر نمیشه این یعنی برنامه اشکال داره

باید برنامه را تغییر بدی به نحوی که اولی رو با آخری که مقایسه کرد اگر مساوی بود ادامه بده;continiueواگر نبود از حلقه خارج بشه و پرش کنه به یه تابع دیگه و اون جا مثلا چاپ کنه متقارن نیست
و اخر همین حلقه for هم چاپ کنه متقارن هست
اینطوریاست
نمیدونم به جواب رسیدی یا نه اما من این تاپیک رو الان دیدم
و اینو هم بدون که c# هم دستوراتش مثل c++ هست و همچنین سختی های کار با c++ رو هم نداره