PDA

View Full Version : مبتدی: مشکل در ارسال ارایه به یک تابع



amasood
یک شنبه 12 دی 1395, 22:06 عصر
با سلام و عرض خسته نباشید من کد زیر روبرای به دست اوردن ماکسیم عنصر یک ارایه به وسیله ی تابع تو ویژوال مینویسم ولی باerrorمواجه میشم اگه میشه راهنماییم کنید

#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
double bishtarin(double grade[], int a)
{
double max = 0;
for (int i = 0; i < 10; i++)
{
if (grade[i]>max)
{
max = grade;
}
}
return max;
}

int main()
{
double grade[10];
for (int i = 0; i < 10; i++)
{
cin >> grade[i];
}
double maximum = bishtarin(grade[], 10);

return 0;
}

Symbian Master
دوشنبه 13 دی 1395, 10:17 صبح
با سلام و عرض خسته نباشید من کد زیر روبرای به دست اوردن ماکسیم عنصر یک ارایه به وسیله ی تابع تو ویژوال مینویسم ولی باerrorمواجه میشم اگه میشه راهنماییم کنید

#include "stdafx.h"
#include<iostream>
#include<string>
using namespace std;
double bishtarin(double grade[], int a)
{
double max = 0;
for (int i = 0; i < 10; i++)
{
if (grade[i]>max)
{
max = grade;
}
}
return max;
}

int main()
{
double grade[10];
for (int i = 0; i < 10; i++)
{
cin >> grade[i];
}
double maximum = bishtarin(grade[], 10);

return 0;
}


سلام
با 3 تا تغییر جزئی، برنامه به صورت زیر درمیاد و کار میکنه:
#include <iostream>
#include <string>
using namespace std;


double bishtarin(double grade[], int a)
{
double max = 0;
for (int i = 0; i < 10; i++)
{
if (grade[i]>max)
{
max = grade[i];
}
}
return max;
}


int main(){


double grade[10];
for (int i = 0; i < 10; i++)
{
cin >> grade[i];
}
double maximum = bishtarin(grade, 10);


cout << maximum << endl;


return 0;
}

Symbian Master
دوشنبه 13 دی 1395, 10:32 صبح
البته برنامه شما کمی نیاز به تصحیح داره.
1- چرا داخل تابع، max رو 0 قرار دادید؟ الان اگر 10 تا عدد منفی به برنامه بدیم و اصلاً 0 رو وارد نکنیم، برنامه به اشتباه میگه که بیشترین عدد، 0 بوده! درحالی که ما فقط اعداد منفی وارد کردیم.
پس بهتره max رو برابر اولین خونه آرایه قرار بدیم.

2-چرا ورودی تابع، هم آرایه هست و هم تعداد خونه های آرایه (int) ؟؟ فقط آرایه رو به عنوان ورودی به تابع بدیم کافی هست.


#include <iostream>
#include <string>
using namespace std;


double bishtarin(double grade[])
{
double max = grade[0];
for (int i = 0; i < 10; i++)
{
if (grade[i]>max)
{
max = grade[i];
}
}
return max;
}


int main(){


double grade[10];
for (int i = 0; i < 10; i++)
{
cin >> grade[i];
}
double maximum = bishtarin(grade);


cout << maximum << endl;


return 0;
}