برنامه تقسیم به روش تفریق های متوالی

سلام این برنامه رو مینویسم هنگ میکنه و با ctrl + break میام بیرون

کد:
#include <stdio.h>
#include <conio.h>
void main()
{
    int a,b,c,i;
    clrscr();
    printf("Please Enter Number 1 : ");
    scanf("%D",&a);
    printf("please Enter Number 2 : ");
    scanf("%D",&b);
    if (a>b)
    {
        while (a>0)
        {
            a=a-b;
            i++;
        }
    }
    else
    {
        while (b>0)
        {
            b=b-a;
            i++;
        }
    }
    if (a==b)
        printf("1");
    printf("total = %d",i);
    getch();
}
 

the_king

مدیرکل انجمن
کد برنامه شما را ویرایش کردم.
مورد اول
متغیر های شما int هستند و موقع استفاده از تابع ()scanf بایستی از "d%" استفاده کنید و نه "D%" زیرا
از "D%" برای متغیر های long استفاده می شود و طول حافظه long در اکثر کامپایلر ها دو برابر int است
و در هنگام انتقال در داخل متغیر های int حافظه اطراف آنرا تخریب می کند.

مورد دوم
شما فرض را بر این گرفتید که اگر a بزرگتر از b باشد از a به مقدار b کم کند ولی اگر b برابر صفر باشد این حلقه پایانی
نخواهد داشت، شما این حالت را در نظر نگرفتید.

مورد سوم
متغیر i را بدون مقدار اولیه افزایش دادید (++i)، این کار نتایج درستی نخواهد داشت چون مقدار اولیه i الزاما صفر نخواهد بود.
حتما پیش از هر عملی مقدار آنرا روی صفر تنظیم کنید.

مورد چهارم
چرا متغیر a را همواره عدد مقسوم و b را عدد مقسوم علیه در نظر نگرفتید؟
من شرط جابجایی آنها را بصورت Bold شده در کد برنامه اضافه کردم ولی اگه نظر من را بپرسید، از نظر من یک کار
اضافی و بی مورد است. اگر عدد a از عدد b کوچکتر باشد، بایستی حاصل صفر شود، نه آنکه b را بر a تقسیم کنیم.

مورد پنجم
متغیر c کاربردی ندارد. نیازی به تعریف کردنش نبود.


کد:
#include <stdio.h>
#include <conio.h>

void main()
{
    int a,b,i=0;
    clrscr();
    printf("Please Enter Number 1 : ");
    scanf("%d",&a);
    printf("please Enter Number 2 : ");
    scanf("%d",&b);
[B]    if (b>a)
    {
        int t=a;
        a=b;
        b=t;
    }
[/B]    if (b==0)
        printf("Divide by zero");
    else
    {
        while (a>=b)
        {
            a=a-b;
            i++;
        }
        printf("total = %d",i);
    }
    getch();
}
 

جدیدترین ارسال ها

بالا