PDA

View Full Version : سوال: سوال درمورد ++turbo c



mostafa asali
سه شنبه 26 فروردین 1393, 17:47 عصر
ای که 50 کاراکتر را از ورودی دریافت کند وتعاد تکرار هر یک از کاراکتر ها را بدست آورد

sourcecode
سه شنبه 26 فروردین 1393, 19:19 عصر
برنامه ای که 50 کاراکتر را از ورودی دریافت کند و تعداد تکرار هر یک از کاراکتر ها را بدست آورد

سلام
به چند روش می شه حلش کرد اما چون فکر می کنم سوال درسی باشه خیلی ساده میگمش که بفهمی . البته یادت نره که این سایت جای سوال کردن نیست .
یه روش که بهتر درکش کنی اینه که :
در main به تعداد کاراکتر ها , متغییر تعریف می کنی یعنی برای کاراکتر A , یک متغییر a از نوع int تعریف می کنی این کار رو تا Z انجام میدی . سپس یک حلقه for ایجاد که 50 بار اجرا می شه که درون این for یک Swich قرار داره . حالا دستوری مینویسی که کاراکتر رو بگیره . سپس باید از switch استفاده کنی - کار این switch به این صورت کار میکنه که اگه کاراکتر A از ورودی گرفته شد به Case مربوط به کاراکتر A میره بعد درون هر کیس دستوری رو بنویسی که به متغییر مربوط به کاراکتر یکی اضافه کنه مثلا شما کاراکتر A رو از ورودی می گیرید .

Case 'A' :
a=a+1;
break;

ali chegini
سه شنبه 26 فروردین 1393, 21:08 عصر
سلام.
روش sourcecode (http://barnamenevis.org/member.php?284595-sourcecode) هم جالبه منم یه روش به نظرم اومد اینه :

cout << "insert 50 character ! please ! :) " << endl;
string _ws;
getline(cin,_ws);
//65 t 90 = A-Z
//97 t 122
int counter=0;
for(int i=65;i<=90;i++)
{
for(int j=0;j<_ws.length();j++)
{
if(_ws[j]==i)
{
counter++;
}
}
cout << (char)i << " = " << counter << endl;
counter=0;
}
counter=0;
for(int m=97;m<=122;m++)
{
for(int jj=0;jj<_ws.length();jj++)
{
if(_ws[jj]==m)
{
counter++;
}
}
cout << (char)(m) << " = " << counter << endl;
counter=0;
}