Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.05.2009, 19:25   #1
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию функции

Код:
#include <iostream.h>
pro();//прототип функции
 int summ_arr(int arr[], int  k);
main ()
{

cout<<"vvedite razmer massiva\n\a";
unsigned short n;

int* cook=new int [n];
for (unsigned short i=0;i<n;i++)
cin>>cook[i];
int summ_arr(cook, n);//ошибка... хотя непонятно в чём косяк
cout<<"total "<<sum<<endl;

}

pro()
{   int h;
while (!(cin>>h))
        {
        cin.clear();
        while (cin.get()!='\n');
                {continue;
                cout<<"Please, enter correct number:\n";
                }
}


int summ_arr(int arr[], unsigned short  k)
{
int total=0;
for(int i=0;i<k;i++)
        total=total+arr[i];
return total;
}

int summ_arr(cook, n);//ошибка... хотя непонятно в чём косяк

Последний раз редактировалось MaTBeu; 03.05.2009 в 20:06.
Dimarik вне форума
Старый 03.05.2009, 19:30   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

1.
Код:
int summ_arr(int arr[], int  k);
//.............................
int summ_arr(int arr[], int k)
{
int total=0;
//...............
2.
Код:
cin>>cook[i];
//int summ_arr(cook, n);//ошибка... хотя непонятно в чём косяк
summ_arr(cook, n);//ошибка... хотя непонятно в чём косяк
cout<<"total "<<sum<<endl;
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума
Старый 03.05.2009, 20:01   #3
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

аааа...... понял понял... из-за несоответстви я типов, хотя, если я не ошибаюсь, компиллятор способен в случае необходимости автоматически преобразовывать типы... непонятно, почему это не произошло....
помню точно, что тип меньшего размера компиллятор способен преобразовать в тип большего размера.....
а вот наоборот может?
Dimarik вне форума
Старый 03.05.2009, 20:08   #4
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
int summ_arr(int arr[], int  k);
и
Код:
int summ_arr(int arr[], unsigned short  k)
две разные функции.
Пример
Код:
#include <iostream>

using namespace std;

void foo(int i){
	cout<<"Int i: "<<i<<endl;
}
void foo(unsigned short i){
	cout<<"unsigned short i: "<<i<<endl;
}
int main()
{
	int i = 10;
	unsigned short us = 20;
	foo(i);
	foo(us);
	return 0;
}
Out:
Цитата:
Int i: 10
unsigned short i: 20
Press any key to continue . . .
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума
Старый 04.05.2009, 17:43   #5
djonny
Новичок
Джуниор
 
Регистрация: 04.05.2009
Сообщений: 1
По умолчанию

Код:
         void swap ( int * p, int * q )
         {
           int t = * p;
           * p = * q;
           * q = t;
         }
можно адаптировать такую функцию под массив структур? если да то как?
djonny вне форума
Старый 04.05.2009, 20:14   #6
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Dimarik Посмотреть сообщение
аааа...... понял понял... из-за несоответстви я типов, хотя, если я не ошибаюсь, компиллятор способен в случае необходимости автоматически преобразовывать типы... непонятно, почему это не произошло....
помню точно, что тип меньшего размера компиллятор способен преобразовать в тип большего размера.....
а вот наоборот может?
основная ошибка тут в том, что в строке
Код:
int summ_arr(cook, n);
вы написали int перед вызовом функции (делать этого не надо)
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума
Старый 07.05.2009, 20:18   #7
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию переменные

в языке Turbo Pascal есть такое понятие как глобальные переменные и локальные переменные. Есть ли такое понятие в С++???
как я понял - нет=(( хочу создать процудуру, например,
void mas(void), при этом используя в теле подпрограммы те переменные, которые я уже объявил в функции main(). Компиллятор пишет, что эту переменную он не знает...=((((
я что-то непонимаю и делаю не так?
Dimarik вне форума
Старый 07.05.2009, 20:35   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
в языке Turbo Pascal есть такое понятие как глобальные переменные и локальные переменные. Есть ли такое понятие в С++???
как я понял - нет=((
С чего вы такое взяли? Объявите переменную вне функции и будет она глобальной.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 07.05.2009, 21:17   #9
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

а вот пример:
Код:
        cout<<bufRus;
        return bufRus;
        }     ;

struct stoit
{
string city;
string kod;
float price;
float min;
float cost;
}   ;  
 vvod( );
main()
{
short n;
Rus("Введите число городов, в которые вы звонили:\n");
cin>>n;
stoit * gorod=new stoit[n];
} ;
vvod( )
{
Rus("Введите название города, его код, стоипость одной минуты,количество проговорённых минут:\n");
for (short i=0; i<n;i++)
{cin>>gorod[i].city;
cin>>gorod[i].kod;
cin>>gorod[i].price;
cin>>gorod[i].min;
return gorod[i];}

Последний раз редактировалось MaTBeu; 08.05.2009 в 20:13.
Dimarik вне форума
Старый 07.05.2009, 21:21   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
а вот пример:
И это пример? Его даже нельзя скомпилировать, т.к. он неполный.
И скажите сразу, что именно вы хотите и что там не видит/не получается.

И еще поместите код в теги CODE ("#" На панели в окне редактирования).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ функции KOLYTFR Помощь студентам 1 27.04.2009 09:33
Функции на СИ tanek Помощь студентам 1 08.04.2009 17:43
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57
Функции furian Общие вопросы C/C++ 3 18.12.2007 12:48