ورود

View Full Version : سوال: چطوری ب.م.م و ک.م.م رو حساب کنم(کد نوشتم ولی کار نمیکنه)



lordofphp
دوشنبه 17 بهمن 1390, 19:49 عصر
به نام خدا
سلام ببخشید دوستان من میخوام برنامهمم دوتا عدد بگیره و ب.م.م و ک.م.م رو بگیره ولی نمیدونم کدهام کار نمیکنه چرا؟
دوستان میشه بگن اشکال از کجاست؟
#include<iostream.h>
#include<conio.h>
void main(){
clrscr();
float i,j,a,b,c,d;
cout<<"Please Enter Numbers\n";
cout<<"Please Insert First Number:";
cin>>a;
cout<<"Please Insert Second Number:";
cin>>b;
for(i=0;i<=0;i/=){
for(j=0;j<=0;j/=){
c=a/b;
}
}
cout<<"GCD:"<<c<<endl;
d=(a*b)/c;
cout<<"SCD:"<<d<<endl;
getch();
}


باتشکر

lordofphp
چهارشنبه 19 بهمن 1390, 10:38 صبح
کسی نیست کمک کنه؟

انیشتین
چهارشنبه 19 بهمن 1390, 11:40 صبح
سلام...
لطفا بنوبیس درست کار نمیکنه یعنی چی؟...اصلا اجرا نمیشه یا اجرا میشه و درست جواب نمیده؟...
البته به نظرم برنامه شما اجرا میشه و درست جواب نمیده.. به هرحال...

روش کارت به نظرم درست نیست ، بهتره برای محاسبخ ب م م از حلقه وایل استفاده کنید نه فور!
روش نبردبانی یادت هست که؟... دقیقا از همون الگوریتم استفاده کن... اون دو تا حلقه تو در توی وسط برنامه ات فکر کنم مشکل داره،
حد اقل من منطق اش رو نفهمیدم!

shahmohammadi
چهارشنبه 19 بهمن 1390, 18:31 عصر
با سلام.
بله همون طور که دوستمون انیشتین (http://barnamenevis.org/member.php?151663-%D8%A7%D9%86%DB%8C%D8%B4%D8%AA%DB%8C%D9%86) فرمودند حلقه تون باید با وایل باشه و از الگوریتم نردبانی استفاده کنید.
الگوریتم نردبانی هم به این صورته که اگه m بزرگتر از n باشه به صورت زیر بمم رو محاسبه می کنیم:
int r=1;
while (r!=0)
{
r=m%n;
m=n;
n=r;
}
return m;
حالا باید برای هر حالت a>b و a<b و a==b الگوریتم بالا رو بنویسید.

hfkh77
سه شنبه 08 فروردین 1391, 22:20 عصر
سلام.
این هم برنامه ای که خواسته بودی.
ک.م.م = کوچکترین مضرب مشترک.
ب.م.م = بزرگترین مقسوم علیه مشترک.

این رو برای این گفتم که بعدا مشکلی پیش نیاد.
فکر کنم منظور تو هم همین بود!!
:لبخند:

این هم سورس کد برنامه که با codeblocks نوشته شده و تو محیط
dev ++c
تست شده هستش.
اگر مشکلی بود خبرم کن.


#include <iostream>
#include "conio.h"

using namespace std;

int main(int argc, char *argv[])
{
int a,b,c=0,d,maxm=1;
cout<<"enter two number: "<<endl;
cin>>a;
cin>>b;

if (a>b)
{
c=a;
}
if (b>a)
{
c=b;
}

for (int i=1;i<=c;i++)
{
if ((a%i==0)&(b%i==0))
{
maxm=i;
}

}
cout<<"b.m.m : "<<maxm<<endl;
cout<<"k.m.m : "<<((a*b)/maxm)<<endl;
getch();
return 0;