PDA

View Full Version : مبتدی: اشکال در تبدیل مبنا 10 به 12



Faraz Mehraien
چهارشنبه 30 اردیبهشت 1394, 10:42 صبح
با سلام.من کد زیر و زدم برای تبدیل به مبنا 12.ولی یه ایراد داره که مثلا 134 که می شه B2 را 2B چاپ می کنه؟
اشکال از کجاست؟
ممنون می شم راهنمایی کنید

#include <cstdlib>
#include <iostream>


using namespace std;


int main(int argc, char *argv[])
{
int number,b=0,q=0,counter=1,n=0,o=0;
int r;
char d=0;
cout<<"adady vared konid:";
cin>>number;
n=number ;
while(number!=0)
// if(number>0)
{

switch(number%12)
{
case 10:
cout<<"A";
// r='A';
break;
case 11:
cout<<"B";
// r='B';
break;
default:
cout<<number%12;
// r=number%12;
break;
}

number=number/12;
// counter=counter*10;
// d+=r*counter;`
}

Azar.099
چهارشنبه 30 اردیبهشت 1394, 15:32 عصر
سلام
چون داری از باقی مانده اولی شروع به چاپ کردن میکنی به جای اینکه اول خارج قسمت وبعد از اخرین باقی مانده ها را چاپ کنی
باید ذخیره کنی بعد چاپ کنی
میتونی یکی یکی توی وکتور پوش کنی و بعد چاپ کنی

#include <cstdlib>#include <iostream>
#include <vector>
using namespace std;


int main(int argc, char *argv[])
{
int number, b = 0, q = 0, counter = 1, n = 0, o = 0;
int r;
char d = 0;
cout << "adady vared konid:";
cin >> number;
vector<int> mode;
n = number;
while (number != 0)
// if(number>0)
{


switch (number % 12)
{
case 10:
cout << "A";
// r='A';
break;
case 11:
cout << "B";
// r='B';
break;
default:
mode.push_back(number % 12);
// r=number%12;
break;
}


number = number / 12;
// counter=counter*10;
// d+=r*counter;`
}

for (vector<int>::reverse_iterator cur = mode.rbegin(); cur != mode.rend(); ++cur)
{
int data = *cur;
cout << data ;
}
}

Faraz Mehraien
چهارشنبه 30 اردیبهشت 1394, 18:47 عصر
سلام
چون داری از باقی مانده اولی شروع به چاپ کردن میکنی به جای اینکه اول خارج قسمت وبعد از اخرین باقی مانده ها را چاپ کنی
باید ذخیره کنی بعد چاپ کنی
میتونی یکی یکی توی وکتور پوش کنی و بعد چاپ کنی

#include <cstdlib>#include <iostream>
#include <vector>
using namespace std;


int main(int argc, char *argv[])
{
int number, b = 0, q = 0, counter = 1, n = 0, o = 0;
int r;
char d = 0;
cout << "adady vared konid:";
cin >> number;
vector<int> mode;
n = number;
while (number != 0)
// if(number>0)
{


switch (number % 12)
{
case 10:
cout << "A";
// r='A';
break;
case 11:
cout << "B";
// r='B';
break;
default:
mode.push_back(number % 12);
// r=number%12;
break;
}


number = number / 12;
// counter=counter*10;
// d+=r*counter;`
}

for (vector<int>::reverse_iterator cur = mode.rbegin(); cur != mode.rend(); ++cur)
{
int data = *cur;
cout << data ;
}
}
خروجی چاپ نمی شه اااا من کار با وکتور بلد نیستم زیاد

Azar.099
چهارشنبه 30 اردیبهشت 1394, 22:03 عصر
خروجی چاپ نمی شه اااا من کار با وکتور بلد نیستم زیاد

واقعا !!!!!
پس برای من که چاپ میشه
یعنی الان میزنی 134 نمیزنه B2
کار با وکتور خیلیی اسونه .. ببین کجاشو مشکل داری ؟

Faraz Mehraien
یک شنبه 03 خرداد 1394, 08:20 صبح
واقعا !!!!!
پس برای من که چاپ میشه
یعنی الان میزنی 134 نمیزنه B2
کار با وکتور خیلیی اسونه .. ببین کجاشو مشکل داری ؟
خیلی ممنون.اشکال از من بود.قرار بود این برنامه بره کنار یکی دیگه که کامل شه،واسه همون چاپ نمی شد.خیلی لطف کردید
من فقط تعریف وکتور و خوندم.تا حال استفاده ازش نکردم واسه همین براام گنگه