برنامه ای دو عدد بگیرد و بزرگترین را بدهد (از شرط استفاده نشود و شامل کل اعداد مثبت و

سونامی

New Member
مسئله

چگون ه می توان بدون علامت >و<و..............بین چند عدد بزرگترین را انتخاب کرد
 

سونامی

New Member
مسئله

چگونه میتوان بدون علامت>و<و..................... .بزرگترین عدد بین جند عدد نشان را داد
 

Mikhak

Active Member
سلام جناب سونامی
واقعا از عنوان تاپیکتون دقیقا میشه پی برد به مسئله ....
لطفا درستش کنین..

در مورد مقایسه یک اعداد بدون استفاده از عملگرهای شرطی باید یقه ریاضیات رو چسبید ...

شما فرض کن میخوایم بین 6 و 8 بزرگترینش رو پیدا بکنیم بدون همونایی که تو گفتی ...
میشه گفت ...
اگه a=6 و b=8
کد:
min = (a+b) - (abs(a-b)) /2
کد:
max = (a+b) + (abs(a-b)) /2
 

سونامی

New Member
متوجه فرمایشتون نشدم یعنی شما میگین که نمی تونه از تابع sgn استفاده کنه؟
 

the_king

مدیرکل انجمن
متوجه فرمایشتون نشدم یعنی شما میگین که نمی تونه از تابع sgn استفاده کنه؟

من متوجه فرمایش خود شما نشدم. چه کسی نمی تونه از تابع Sgn استفاده کنه؟ تابع Sgn علامت یک عدد رو مشخص
می کنه.
اگر عدد منفی باشه مقدار 1- و اگر عدد مثبت باشه مقدار 1+ و اگر عدد صفر باشد مقدار 0 را بر می گرداند.

بر اساس مقداری که تابع برای پارامتر a - b بر می گردونه میشه تشخیص داد که کدوم عدد بزرگتر یا کوچکتره.
برای انتخاب بر اساس سه مقدار 1- و 0 و 1+ کافیه مقدار بازگشتی را با 2 جمع کنیم تا به 1 و 2 و 3 تبدیل بشه.
حالا تابع Choose می تونه بر اساس سه مقدار 1 و 2 و 3 یکی از اعداد رو برگردونه :

کد:
    MsgBox Choose(Sgn(a - b) + 2, b, a, a)

در مثالی که زدم مقدار ماکزیمم بین a و b اعلام خواهد شد.

حالا اگر در پارامتر های دوم و چهارم تابع Choose جای a و b را عوض کنیم خروجی تابع هم عدد مینیمم خواهد بود :

کد:
    MsgBox Choose(Sgn(a - b) + 2, a, a, b)
 

sunyboy

New Member
سلام

دو عدد را بگیرد و بزرگترین را بدهد (از شرط استفاده نشود و شامل کل اعداد مثبت و منفی )؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
ممنونتون میشم .
164.gif
ممنون میشم طودتر جوابش رو بدین:rose:
 

the_king

مدیرکل انجمن
سلام

دو عدد را بگیرد و بزرگترین را بدهد (از شرط استفاده نشود و شامل کل اعداد مثبت و منفی )؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
ممنونتون میشم .
164.gif
ممنون میشم طودتر جوابش رو بدین:rose:

پاسخ Mikhak عزیز در قالب یک برنامه :

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

void main()
{
	int a,b;
	clrscr();
	printf ("Please enter a : ");
	scanf("%d",&a);
	printf ("Please enter b : ");
	scanf("%d",&b);
	printf ("Min = %d\n", (a + b - abs(a-b)) /2);
	printf ("Max = %d\n", (a + b + abs(a-b)) /2);
	getch();
}
 

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

بالا