PDA

View Full Version : سوال: دریافت 3 عدد و تشخیص 2 عدد بزرگتر و جمع کردن آنها با هم



R2du-soft
سه شنبه 25 مهر 1391, 21:35 عصر
سلام
والا بزارید واضح بگم!
میخوام یه برنامه بنویسم با visual studio که توش 4 تا تکست باکس و یک دکمه داره
میخوام کاربر در تکست باکس 1 تا 3 ، سه تا عدد بزنه و زمانی که روی دکمه کلیک کرد این اتفاقا بیوفته:
در تکست باکس های 1 تا 3 چک بشه که کدوم عدد بزرگتره!
مثلا به ترتیب زیر وارد شده
text1 = 20
text2 = 10
text3 = 30
برنامه 20 و 30 رو تشخیص بده که بزرکن و باهم جمعشون کنه و توی تکست باکس 4 بریزه.

چطور باید مقایسه انجام بشه ؟
مرسی

omidshaman
چهارشنبه 26 مهر 1391, 08:17 صبح
این کداین جوری کار می کنه که شما یک array شامل هر تعداد عددی که می خوای+تعدادشون رو به به فانکشن max میدی بعد ماکزیممشو بهت بر می گردونه و مقدار ماکزیمم رو تو اون array 0 میزاره
پس مثلا اگر بخوای 2تا بیشترین رو پیدا کنی باید این کارو بکنی
adad1=max(a,5,0);
adad2=max(a,5,0);
.
.
.

max(int a[],int ted,int sh)
{
static zero;
static maxx;
static b;
if(sh==0){
sh++;
zero=0;
maxx=a[0];
b=0;
}

if(maxx<a[b+1])
{
maxx=a[b+1];
zero=b+1;
}
b++;

if(b<ted-1)
max(a,ted,sh);

else{

a[zero]=0;
return maxx;
}

}

mahak006
چهارشنبه 26 مهر 1391, 18:41 عصر
این کدو برگردون تو حالت ویژوال ( خودم هنوز بلد نیستم )


void command1_click()
{
int a=text1.text,b=text2.text,c=text3.text,sum;
sum=a+b+c - minimum(a,b,c);
text4.text=sum;
}
int minimum(int x,int y,int z)
{
int output=x;
if(y<output)
output=y;
if(z<output)
output=z;
return output;
}


البته شیوه ی حل یه مقدار متفاوته . به جای اینکه دو تا ماکزیمم ها رو حساب کنه و بعد اون ها رو جمع کنه ، اول 3 تا عدد رو جمع می کنه و بعد مینیمم رو کم می کنه . یه جورایی از روش معکوس اون چیزی که خواستی ، حل می شه .