نحوه ی کنترل موارد وارد شده...
سلام...
ما پروژه ای داریم که باید یک چند جمله ای رو در نقطه ای مشخص حساب کنیم...
با این مشکلی ندارم...
مشکل من اینجاشه که میخوام کنترل کنم آیا اون بزرگترین توانی کع کاربر به من میده، یا هر کدوم از ضرایب عدد هستن یا نه...
و اگر احیانا به طور مثال کاربر یه کاراکتر وارد کرد، برنامه بیاد پیام بده که این عدد نیست و دوباره اون رو بگیره...
با این قسمتش مشکل دارم...
کسی هست بتونه بهم کمکی کنه؟؟؟؟؟
ممنون میشم!!
نقل قول: نحوه ی کنترل موارد وارد شده...
برای تشخیص عدد بودن یا کاراکتر بودن ورودی میتونی از تابع atoi استفاده کنی، برای کار با رشتهها باید توابع مربوط به اون رو بشناسی تو این بلاگ در مورد تعدادی از این توابع توضیح داده
int myInput = atoi("200");
if(myInput != 0)
{
//is numebric
printf("Input: %d\n", myInput);
}
نقل قول: نحوه ی کنترل موارد وارد شده...
یه جا خوندم که نوشته بود این تابع رشته میگیره نه کارکتر، من فقظ یه کارکتر بش وارد میکنم، که پیشنهاد شده بود از تابع char_to_int استفاده بشه...
این رو بگذریم...
ادامه ی پروژه نوشته بود که از کاربر پرسیده بشه که آیا میخواد دوباره این روند رو انجام بده یا نه؟
من واسه این مرحله اومدم از goto استفاده کردم، ولی هر دفه جواب فرق داره با مرحله ی قبل؟؟؟؟؟؟؟؟؟؟؟؟
نقل قول: نحوه ی کنترل موارد وارد شده...
نقل قول:
یه جا خوندم که نوشته بود این تابع رشته میگیره نه کارکتر، من فقظ یه کارکتر بش وارد میکنم، که پیشنهاد شده بود از تابع char_to_int استفاده بشه...
این رو بگذریم...
آرایهای از کاراکترها رشته رو تشکیل میدن، پس فرقی نداره ورودی یک بایت باشه یا یک مگ
نقل قول:
ادامه ی پروژه نوشته بود که از کاربر پرسیده بشه که آیا میخواد دوباره این روند رو انجام بده یا نه؟
من واسه این مرحله اومدم از goto استفاده کردم، ولی هر دفه جواب فرق داره با مرحله ی قبل؟؟؟؟؟؟؟؟؟؟؟؟
تمام فرایند رو داخل یه حلقه بی پایان قرار بدید و اگر جواب ادامه روند "خیر" بود حلقه رو ببندید
نقل قول: نحوه ی کنترل موارد وارد شده...
نقل قول:
تمام فرایند رو داخل یه حلقه بی پایان قرار بدید و اگر جواب ادامه روند "خیر" بود حلقه رو ببندید
اینکارم کردم...بازم جواب فرق داره...:اشتباه:
نقل قول: نحوه ی کنترل موارد وارد شده...
سوالی که طرح کردید یا کمی مبهم بود یا من بد متوجه شدم شاید . مشکل شما اینه که میخواید اگه طرف بجای عدد یه حرف وارد کرد برنامه خطا بده و دوباره از اول اجرا شه ؟
خب بجای گرفتن اعداد به صورت مستقیم آنهارو به صورت کاراکتر بگیرید و لیستی از کاراکتر های مجازتون رو به عنوان مرجع در اول برنامه بگذارید و ورودی ها رو بصورت رشته ای و هر عدد در خانه ای مجزا بگیرید و تک تک خانه های ورودی را با کاراکتر های مجاز تون مقایسه کنید . اگر مطابقت داشت با دستور break از حلقه خارج شده و برنامه را به پایان ببرید در غیر این صورت برنامه به ابتدای حلقه رفته تا ......برنامه تمام شود