* 3 функции за работа с масив от числа

Да се напише програма, която пита с колко числа ще работим и заделя динамично необходимата памет. Програмата да съдържаща 3 функции за работа с цели числа:

  1. Първата да позволява въвеждане на стойности на числата.
  2. Втората да ги извежда в ред, обратен на въведения, разделени със запетаи.
  3. Третата отпечатва средното им аритметично.

** По желание: Питането за броят на числата и заделянето на памет за тях да се направи в първата функция. Функцията да се реализира така, че да може да бъде извиквана повече от веднъж.

Публикувано в 12а с етикети . Постоянна връзка.

5 Responses to * 3 функции за работа с масив от числа

  1. Gadget каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    void vuvejdane(int n,int p[]){
         for(int i=0;i<n;i++){
                 cout<<"Vavedete chislo: ";
                 cin>>p[i];
         }
    }
    
    void obratno_izvejdane(int n,int p[]){
         for(int i=n-1;i>=0;i--){
                 if(i>0)
                  cout<<p[i]<<", ";
                 else
                  cout<<p[i];
         }
    }
    
    float sredno_arit(int n,int p[]){
         float sum=0;      
         for(int i=0;i<n;i++){
                 sum+=p[i];
         }
         return (sum/n);
    }
    
    int main(int argc, char *argv[])
    {
        int n;
        cout<<"Vavedete broi chisla: ";
        cin>>n;
        
        int *p=new int[n];
        
        vuvejdane(n,p);
            
        obratno_izvejdane(n,p);
        
        cout<<endl<<endl;
        
        sredno_arit(n,p);
        
        if(n>0)
         cout<<"Srednoto aritmetichno e: "<<sredno_arit(n,p)<<endl;
        else
         cout<<" ";
        delete[] p;
        
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    I Вариант

    • Данаил каза:

      Супер! Опитай обаче варианта по желание в условието по-горе: паметта да се заделя в самата функция и да се връща указател към нея. Също пробвай към функциите да се подава указател, а не масив и обхождането на масива да стане с адресна аритметика вместо с индексиране, за да проиграеш и този метод.

  2. Gadget каза:
     
    #include <iostream>
    #include <cstdlib>
    
    using namespace std;
    
    float functions(int n){
          
                int *p=new int[n];
                float sum=0;
                
             	for(int i=0;i<n;i++){
             		cout<<"Vavedete chislo: ";
             		cin>>p[i];
             		sum+=p[i];
             	}
             	
             	for(int i=n-1;i>=0;i--){
                        cout<<p[i]<<", ";
                        }
                        
                return (sum/n);                
             	delete[] p;
         }
    
    
    int main(int argc, char** argv) {
    
    	int n;
    	float arit;
    	cout<<"Vavedete broi chisla: ";
    	cin>>n;
    	
    	arit=functions(n);
    	
    	cout<<endl<<endl;
    	cout<<"Otgovorut e: "<<arit<<endl;
    
        	
    	system ("PAUSE");
    	return 0;
    }
    

    II Вариант

  3. dreanor каза:
    #include <iostream>
    
    using namespace std;
    
    struct array
    {
        int *masiw;
        int razmer;
    };
    
    array wuwejdane()
    {
        array arr;
        cout<<"Wuwedi razmera na masiwa: ";
        cin>>arr.razmer;
        cout<<"Wuwedi elementite na masiwa: ";
        arr.masiw=new int[arr.razmer];
        for (int i=0;i<arr.razmer;i++)
            cin>>*(arr.masiw+i);
        return arr;
    }
    
    void izwejdane(array arr)
    {
        for (int i=--arr.razmer;i>0;i--)
            cout<<*(arr.masiw+i)<<", ";
        cout<<*(arr.masiw)<<"\n";
    }
    
    void sredno_aritmetichno(array arr)
    {
        float suma=0;
        for (int i=0;i<arr.razmer;i++)
            suma+=*(arr.masiw+i);
        cout<<(float)suma/arr.razmer<<endl;
    }
    
    int main(int argc, char *argv[])
    {
        array arr=wuwejdane();
        izwejdane(arr);
        sredno_aritmetichno(arr);
        delete[] arr.masiw;
    
        return 0;
    }
    

Вашият коментар