Премини към съдържанието

Препоръчан отговор


Здравейте,

Това не е курсова работа, просто се опитвам да разбера как се получава това с генерирането на новия масив. Някой ако може да помогне ще му бъда благодарен

 

Дадени са три масива, всеки от N цели числа (N<=100). За всеки масив:

a) да се намери средноаритметичната стойност на елементите, които имат положителни стойности;

б) да се намери минималната и максимална стойност на масива;

  в) всички елементи на масива с четни стойности да се запишат в нов масив;

 

 

До тук стигнах .. със въвеждането и извеждането няма проблеми.

 

 

#include <iostream.h>
#define MAXN 100

void input (float p[],int &n)
{
 do{
   cout<<"vuvedete n=";
   cin>>n;
 } while (n>MAXN);


 for (int i=0;i<n;i++)
 {
   cout<<"vuvedete p["<<i<<"]=";
   cin>>p;
 }
}

void output (float p[],int n, char* name) // izvejda imeto na masiva koito trqbva
{
 for (int i=0;i<n;i++)
 {
   cout<<name<<"["<<i<<"]="<<p<<"n";
 }
}

float getmin (float p[],int n)
{
 float min=p[0];
 for (int i=1;i<n;i++)
 {
   if (p<min)
   min=p;

 }
 return min;
}

float getmax (float p[],int n)
{
 float max=p[0];
 for (int i=1;i<n;i++)
 {
   if (p>max)
   max=p;

 }
 return max;
}


float broichetni (float p[],int n)
{
 int br=0;
 for (int i=0;i<n;i++)
 {
   if (p%2==0)
   br++;

 }
 return br;
}


float genmas (float p[],int n)
{
 int * dp = new int [br];
 int br;
 for (int i=0;i<n;i++)
 {
   if (p%2==0)
   {
     dp[j]=p;
     j++;
   }

 }
return br;
}


void masivdp (float p[],int n,float dp[], float sa)
{
 for (int i=0;i<n;i++)
 {
   dp=p-sa;

 }

}

void main (void)
{
 float p[MAXN],dp[MAXN];
 int n;
 float  min,max;

 input(p,n);
 output(p,n,"p");
 min=getmin(p,n);
 cout<<"min="<<min<<endl;
 max=getmax(p,n);
 cout<<"max="<<max<<endl;
 br=broichetni(p,n);
 genmas(p,n,dp,min);
 output(dp,n,"dp");
}
 

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

float genmas (float p[],int n)

{

 int * dp = new int [br];  //тук не е ясно каква е стойността на br

 int br;

 for (int i=0;i<n;i++)

 {

   if (p%2==0)

   {

     dp[j]=p; // j откъде се появи?

     j++;

   }

 }

return br;

}

 

Бих ти предложил да пробваш това - не гарантирам, че ще се получи...

float genmas (float p[],int n){   //първо си направи променривите глобални - това е най-мързеливият начин. Иначе може да си направиш още параметри към функциите    int br = broichetni(p, n); //Тук запазваш правилния размер на масива, който трябва да създадеш     int * dp = new int [br];    int j = 0; //правиш си променлива j и й задаваш стойност 0    for (int i=0;i<n;i++)    {        if (p[i]%2==0)        {            dp[j]=p[i];            j++;        }    }return br;//А тук не мога да схвана какво искаш да върнеш - броя на четните числа ли?}

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.