.
Отговор в тема
Резултати от 1 до 15 от общо 15

Тема: C++ 2 задачи

  1. #1

    C++ 2 задачи

    Здравейте ще може ли да ми помогнете за задачи 1 и 5 http://picbg.net/img.php?file=445cf15f46687dfb.JPG

  2. #2
    зад.5

    #include<iostream>
    using namespace std;

    int main()
    {int a[100],n,i,s=0;
    cout<<"vuvedete broq na studentite"<<endl;
    cin>>n;
    for(i=0;i<n;i++)
    cin>>a[i];
    for(i=0;i<n;i++)
    s=s+a[i];
    for(i=0;i<n;i++)
    cout<<a[i]<<";";
    cout<<s/n;
    cin>>i;
    return 0;
    }


    Зад. 1 също не е трудна, но рекурентната формула не ми е позната, а нямам време да я търси, но задачата ще е подобна на горната, като сумата която трябва да се пресмята ще е s=(тук самата рекурентна формула) виждам, че има и коренуване, оператора за коренуване е sqrt(), ако това те затруднява !

  3. #3
    това кеоти си пратил като въведа число и нататък нищо не става
    Последно редактирано от vanio_93 : 11-23-2012 на 16:57

  4. #4
    Код:
    #include <cstdlib> 
    #include <iostream> 
    #include<cmath> 
    #include<string> 
    
    using namespace std; 
    
    void uspeh (int array[], int m) 
    { 
         int i; 
         for (i=0; i<m; i++) 
         { 
             cout<<array[i]<<"; "; 
         } 
         double sum = 0; 
         for (i=0; i<m; i++) 
         { 
             sum = sum + array[i]; 
         } 
         cout<<"\n \n Middle: "<< double(sum / m)<<". \n \n"; 
    } 
    
    int main(int argc, char *argv[]) 
    { 
        int m; // count of the students 
        cout<<"Enter m. \n \n"; 
        cin>>m; 
        cout<<"\n \n"; 
        int n = m; 
        int array[n]; 
        int i; 
        for (i=0; i<n; i++) 
        { 
            cout<<i+1<<" mark: \n"; 
            cin>>array[i]; 
            cout<<"\n \n"; 
        } 
        uspeh(array, n); 
        cout<<"\n \n"; 
        system("PAUSE"); 
        return EXIT_SUCCESS; 
    }
    Това мисля че трябва да е за пета задача обаче ми дава 3 грешки на един от редовете и не мога да разбера къде бъркам

  5. #5
    Цитирай Първоначално написано от vanio_93 Виж мнението
    Това мисля че трябва да е за пета задача обаче ми дава 3 грешки на един от редовете и не мога да разбера къде бъркам
    При мен няма грешки, компилира се без проблем и като за две проби работи коректно. Пробвай с друг компилатор и виж има ли разлика.
    btw, ако очакваш още input, кажи къде и какви грешки ти дава, напълно възможно някой да знае/да се сети от какво е.

  6. #6
    На този ред int array[n]; ми дава 3 грeшки : error C2057: expected constant expression , error C2466: cannot allocate an array of constant size 0 , error C2133: 'array' : unknown size

  7. #7
    Мега фен
    Регистриран на
    Aug 2008
    Град
    Златната Среда
    Мнения
    5 594
    Не може n-то в int array[n] да е променлива, трябва да е константа или направо int array[512] да речем, после int n, cin>>n;(не трябва да въвеждаш повече от 512 в случая) и така.
    01001000011000010110100001100001001000000111000001 1100100
    11001010110001101100001011010110110000100100000011 1001101100101

  8. #8
    Цитирай Първоначално написано от vanio_93 Виж мнението
    това кеоти си пратил като въведа число и нататък нищо не става
    Ти какво очакваш да става ? Какво правиш въвеждаш едно число и чакаш да ти даде резултат ли ?

  9. #9
    Демек как тряба да стане кода?

  10. #10
    Супер фен Аватара на MrCreeper
    Регистриран на
    May 2011
    Мнения
    2 122
    Цитирай Първоначално написано от Nam3less3 Виж мнението
    Не може n-то в int array[n] да е променлива, трябва да е константа или направо int array[512] да речем, после int n, cin>>n;(не трябва да въвеждаш повече от 512 в случая) и така.
    Недей да го лъжеш, напълно възможно е!
    Don't hate the hacker,
    hate the code!

  11. #11
    Мега фен
    Регистриран на
    Aug 2008
    Град
    Златната Среда
    Мнения
    5 594
    Цитирай Първоначално написано от MrCreeper Виж мнението
    Недей да го лъжеш, напълно възможно е!
    The elements field within brackets [] which represents the number of elements the array is going to hold, must be a constant value, since arrays are blocks of non-dynamic memory whose size must be determined before execution. In order to create arrays with a variable length dynamic memory is needed
    01001000011000010110100001100001001000000111000001 1100100
    11001010110001101100001011010110110000100100000011 1001101100101

  12. #12
    Мега фен Аватара на Chacho
    Регистриран на
    Nov 2006
    Мнения
    15 573
    Зависи от компилатора. По стандарта е грешно да се декларира така и Nam3less3 е прав. Този начин декларира масива в статичната памет и е нужно да е определен размера по време на компилация (за да може да се изгради стековата рамка на функцията). За да стане с произволен размер на данните трябва да се дефинира в динамичната памет:

    int* array = new int[n];

    След това работиш с array и накрая на програмата трябва да освободиш заделената памет с:

    delete [] array;
    Последно редактирано от Chacho : 11-27-2012 на 11:33
    Има 10 вида хора. Тези, които могат да четат двоичен код и тези, които не могат.

  13. #13
    Супер фен Аватара на MrCreeper
    Регистриран на
    May 2011
    Мнения
    2 122
    Don't hate the hacker,
    hate the code!

  14. #14
    Мега фен
    Регистриран на
    Aug 2008
    Град
    Златната Среда
    Мнения
    5 594
    Цитирай Първоначално написано от MrCreeper Виж мнението
    В ученическите задачи не се ползват такива масиви.
    01001000011000010110100001100001001000000111000001 1100100
    11001010110001101100001011010110110000100100000011 1001101100101

  15. #15
    Супер фен Аватара на MrCreeper
    Регистриран на
    May 2011
    Мнения
    2 122
    Taка ли?
    Защо никой не ми го е споменавал и никога не са ми правили проблем :Д :Д :Д

    int n;
    cin>>n;
    int array[n];

    e напълно валидна част от код в С99
    Don't hate the hacker,
    hate the code!

Правила за публикуване

  • Вие не можете да публикувате теми
  • Вие не можете да отговаряте в теми
  • Вие не можете да прикачвате файлове
  • Вие не можете да редактирате мненията си