PDA

View Full Version : C++ 2 задачи



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

rooney19
11-23-2012, 16:25
зад.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(), ако това те затруднява !

vanio_93
11-23-2012, 17:54
това кеоти си пратил като въведа число и нататък нищо не става

vanio_93
11-23-2012, 17:58
#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 грешки на един от редовете и не мога да разбера къде бъркам

calinca
11-23-2012, 21:43
Това мисля че трябва да е за пета задача обаче ми дава 3 грешки на един от редовете и не мога да разбера къде бъркам
При мен няма грешки, компилира се без проблем и като за две проби работи коректно. Пробвай с друг компилатор и виж има ли разлика.
btw, ако очакваш още input, кажи къде и какви грешки ти дава, напълно възможно някой да знае/да се сети от какво е.

vanio_93
11-24-2012, 08:25
На този ред 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

Nam3less3
11-24-2012, 08:37
Не може n-то в int array[n] да е променлива, трябва да е константа или направо int array[512] да речем, после int n, cin>>n;(не трябва да въвеждаш повече от 512 в случая) и така.

rooney19
11-24-2012, 08:39
това кеоти си пратил като въведа число и нататък нищо не става

Ти какво очакваш да става ? Какво правиш въвеждаш едно число и чакаш да ти даде резултат ли ?

vanio_93
11-24-2012, 08:58
Демек как тряба да стане кода?

MrCreeper
11-26-2012, 20:24
Не може n-то в int array[n] да е променлива, трябва да е константа или направо int array[512] да речем, после int n, cin>>n;(не трябва да въвеждаш повече от 512 в случая) и така.

Недей да го лъжеш, напълно възможно е!

Nam3less3
11-27-2012, 10:22
Недей да го лъжеш, напълно възможно е!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

Chacho
11-27-2012, 12:27
Зависи от компилатора. По стандарта е грешно да се декларира така и Nam3less3 е прав. Този начин декларира масива в статичната памет и е нужно да е определен размера по време на компилация (за да може да се изгради стековата рамка на функцията). За да стане с произволен размер на данните трябва да се дефинира в динамичната памет:

int* array = new int[n];

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

delete [] array;

MrCreeper
11-27-2012, 17:37
http://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html

Nam3less3
11-27-2012, 17:45
http://gcc.gnu.org/onlinedocs/gcc/Variable-Length.htmlВ ученическите задачи не се ползват такива масиви.

MrCreeper
11-27-2012, 17:53
Taка ли?
Защо никой не ми го е споменавал и никога не са ми правили проблем :Д :Д :Д

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

e напълно валидна част от код в С99