View Full Version : آموزش: راهنمایی برای نوشتن تابع با تعداد نامعلوم ورودی
  
hajizadeh.m
شنبه 12 آذر 1390, 20:58 عصر
با سلام.دوستان میخواستم تابعی رو برای برنامه ام بنویسم که تعداد نامعلومی عدد رو دریافت کنه و میانگینشونو بگیره و چاپ کنه.اما نکته مهم اینه که باید این تعداد نامعلوم به تابع ارسال بشه یعنی تعریف تابع به صورت زیر باشه:
double Avg( int , int , int , ......){};1:
پس تعداد نامعلوم int بگیره و اون تعداد رو هم بهش ندیم یعنی فقط اعدادی که میخوایم میانگین بگیریم رو ارسال کنیم.
کسی میتونه کمک کنه؟
BeginnerProgrammer
شنبه 12 آذر 1390, 21:12 عصر
میتونید اعدادی رو که میگیرین تو وکتور ذخیره کنید بعد سایز وکتور رو به عنوان آرگومان ورودی به تابع ارسال کنید(وکتورتون باید گلوبال باشه).
NIMA_1981
شنبه 12 آذر 1390, 21:30 عصر
این اعداد رو توی یک آرایه بریز بعد آرایه به تابع بفرست
sh4mid
شنبه 12 آذر 1390, 23:16 عصر
سلام
اگر تعداد نامعلوم بخواهی باید از stdarg  (http://en.wikipedia.org/wiki/Stdarg.h)استفاده کنی(البته نامعلوم نامعلوم هم نیست)
مثال ساده
void printThem(int , ...);
int main()
{
	printThem(1,2,3,4,5,6,NULL);
	printThem(1,2,3,4,5,NULL);
	printThem(1,2,3,NULL);
	printThem(1,2,NULL);
	printThem(1,NULL);
	printThem(NULL);
	system("pause");
	return 0;
}
void printThem(int firstItem,...)
{
	va_list mylist;
	va_start(mylist,firstItem);
	if(firstItem==NULL)
	{
		std::cout<<endl;
		return;
	}
	do
	{
		std::cout<<firstItem<<"*";
		firstItem=va_arg(mylist,int);
	}
	while(firstItem!=NULL);
	va_end(mylist);
	std::cout<<endl;
	return;
}
بهشون میگن Variadic function (http://en.wikipedia.org/wiki/Variadic_function)
Aerox1
یک شنبه 13 آذر 1390, 20:07 عصر
میتونی یه حلقه همیشه درست مثلا while(1) بنویسی اول برنامه و عملیات رو توش انجام بدی . اینجوری تا هر موقع که بخوای میتونی عدد وارد کنی
soorena
دوشنبه 14 آذر 1390, 17:48 عصر
سلام
میتونی خیلی راحت از آرایههای پویا یعنی همون لیستهای پیوندی استفاده کنی و هر تعداد نامعلومی که عدد داشته باشی رو توش بگذاری.
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.