PDA

View Full Version : سوال: ورودی حرف می دهم برنامه قاطی می کنه



en-com
یک شنبه 06 آذر 1390, 23:45 عصر
سلام دوستان

من یه برنامه دارم به شرح زیر



#include <iostream>
using namespace std;

int main ()
{
int value =0;
int quarter;
int dime;
int penny;
int reminder =0;


do
{
cout << "**************************How many cent you have?*****************************" <<endl;
cout << "* *" <<endl;
cout << "* -Note 1 : Just write the numbers from 1 to 99 cent *" <<endl;
cout << "* -Note 2 : The program will be end when you type a character *" <<endl;
cout << "* *" <<endl;
cout << "************************************************* *****************************" <<endl;
cout << "Please type Here :";
cin>>value;

cout << endl;

if (value>=0 && value<=99)
{


quarter = value / 25;
reminder = value % 25;
dime = reminder/10;
penny = reminder%10;

if ( quarter <= 1 && dime> 1 && penny > 1 )
{
cout << quarter << " Quarter " <<endl;
cout << dime << " Dimes " <<endl;
cout << penny << " Pennies"<<endl<<endl;
}
else if ( dime <=1 && quarter>1 && penny >1 )
{
cout << quarter << " Quarters " <<endl;
cout << dime << " Dime " <<endl;
cout << penny << " Pennies"<<endl<<endl;
}
else if ( penny <=1 && quarter>1 && dime >1 )
{
cout << quarter << " Quarters " <<endl;
cout << dime << " Dimes " <<endl;
cout << penny << " Penny"<<endl<<endl;
}
else if ( quarter<=1 && dime <=1 && penny >1 )
{
cout << quarter << " Quarter " <<endl;
cout << dime << " Dime " <<endl;
cout << penny << " Pennies"<<endl<<endl;
}
else if ( dime<= 1 && penny <=1 && quarter >1 )
{
cout << quarter << " Quarters " <<endl;
cout << dime << " Dime " <<endl;
cout << penny << " Penny"<<endl<<endl;
}
else if ( quarter<=1 && penny <=1 && dime >1 )
{
cout << quarter << " Quarter " <<endl;
cout << dime << " Dimes " <<endl;
cout << penny << " Penny"<<endl<<endl;
}
else if ( dime<=1 && quarter<=1 && penny <=1 )
{
cout << quarter << " Quarter " <<endl;
cout << dime << " Dime " <<endl;
cout << penny << " Penny"<<endl<<endl;
}
else
{
cout << quarter << " Quarters " <<endl;
cout << dime << " Dimes " <<endl;
cout << penny << " Pennies"<<endl<<endl;
}


}

if (value <0)
{
cout << "LooooL !! we Have not negative cent DUDE " <<endl<<endl;
}



if (value >=100)
cout << "ERROR !!! Please write number between 1-99" <<endl<<endl;



}while(value >32768, value < 32767);




return 0;
}



الان مشکلی که من با این برنمه دارم اینه که وقتی به ورودی یک حرف می دم برنامه قاطی می کنه .در صورتی که باید اررور بده ....اررورشم هرجوری که بگید نوشتم اما بازم یه جای کار لنگیده حتی Value رو از Int به char تغییر دادم و از دستور isdigit هم استفاده کردم ولی نتیجه فاجعه می شه یعنی کلا حساب کتابش غلط می شه و.....
ممنون میشم یکی بهم کمک کنه که این اررور رو چه جوری رفع کنم چون استاد نمره کم می کنه منم الان شدیدا به این نمرات احتیاج دارم اگه این دفعه هم ++C رو بیفتم کارم تمومه :افسرده:
بازم ممنون

BeginnerProgrammer
دوشنبه 07 آذر 1390, 00:22 صبح
اگه میخوای بعد از وارد کردن حروف برنامه تموم بشه ، وقتی به جای عدد یک کاراکتر وارد میکنی مقدار value یک عدد منفی میشه برای همین داخل if دستوری که مربوط به چک کردن اعداد منفیه بریک بذار که کلا از حلقه خارج بشه:


if (value <0)
{
cout << "LooooL !! we Have not negative cent DUDE " <<endl<<endl;
break;
}

en-com
دوشنبه 07 آذر 1390, 02:05 صبح
اگه میخوای بعد از وارد کردن حروف برنامه تموم بشه ، وقتی به جای عدد یک کاراکتر وارد میکنی مقدار value یک عدد منفی میشه برای همین داخل if دستوری که مربوط به چک کردن اعداد منفیه بریک بذار که کلا از حلقه خارج بشه:


if (value <0)
{
cout << "LooooL !! we Have not negative cent DUDE " <<endl<<endl;
break;
}



ممنون ولی جواب نداد
الان مشکل من هنوز اینه که چرخه با سرعت ادامه پیدا می کنه

الان حتی با تغییر به else if تو همون چرخه و تغییر if آخری به else و اجرای دستور شما بازم مشکل وجود داره....


ویرایش: آقا دستت درد نکنه ای Break ه خیلی جرقه خوبی بود برنامم با یه تغییر درست شد....
اینم کدش


#include <iostream>
#include <stdlib.h>
using namespace std;

int main ()
{
int value =0;
int quarter;
int dime;
int penny;
int reminder =0;


do
{
cout << "**************************How many cent you have?*****************************" <<endl;
cout << "* *" <<endl;
cout << "* -Note 1 : Just write the numbers from 1 to 99 cent *" <<endl;
cout << "* -Note 2 : The program will be end when you type a character *" <<endl;
cout << "* *" <<endl;
cout << "************************************************** ****************************" <<endl;
cout << "Please type Here :";


cout << endl;

if ((cin>>value))
{

if ( value>=0 && value<=99)
{


quarter = value / 25;
reminder = value % 25;
dime = reminder/10;
penny = reminder%10;

if ( quarter <= 1 && dime> 1 && penny > 1 )
{
cout << quarter << " Quarter " <<endl;
cout << dime << " Dimes " <<endl;
cout << penny << " Pennies"<<endl<<endl;
}
else if ( dime <=1 && quarter>1 && penny >1 )
{
cout << quarter << " Quarters " <<endl;
cout << dime << " Dime " <<endl;
cout << penny << " Pennies"<<endl<<endl;
}
else if ( penny <=1 && quarter>1 && dime >1 )
{
cout << quarter << " Quarters " <<endl;
cout << dime << " Dimes " <<endl;
cout << penny << " Penny"<<endl<<endl;
}
else if ( quarter<=1 && dime <=1 && penny >1 )
{
cout << quarter << " Quarter " <<endl;
cout << dime << " Dime " <<endl;
cout << penny << " Pennies"<<endl<<endl;
}
else if ( dime<= 1 && penny <=1 && quarter >1 )
{
cout << quarter << " Quarters " <<endl;
cout << dime << " Dime " <<endl;
cout << penny << " Penny"<<endl<<endl;
}
else if ( quarter<=1 && penny <=1 && dime >1 )
{
cout << quarter << " Quarter " <<endl;
cout << dime << " Dimes " <<endl;
cout << penny << " Penny"<<endl<<endl;
}
else if ( dime<=1 && quarter<=1 && penny <=1 )
{
cout << quarter << " Quarter " <<endl;
cout << dime << " Dime " <<endl;
cout << penny << " Penny"<<endl<<endl;
}
else
{
cout << quarter << " Quarters " <<endl;
cout << dime << " Dimes " <<endl;
cout << penny << " Pennies"<<endl<<endl;
}

}

if (value <0)
{
cout << "LooooL !! we Have not negative cent DUDE " <<endl<<endl;

}


if (value >=100)
cout << "ERROR !!! Please write number between 1-99" <<endl<<endl;

}

else
{
system("cls");
cout<<"The program closed successfully....."<<endl;
break;
}






}while(value >32768, value < 32767);

return 0;
}




بازم ممنون