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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2012, 22:00   #1
blain
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 19
Сообщение Си. Функции

помогите, учусь писать функции... вот решил написать 2 для ввода и вывода, ошибка, не пойму почему, подскажите....

Код:
#include <stdio.h>
# define M 5
# define N 4
void in_mas(int);
void out_mas(int);
int main (void)
{int a[N];
 in_mas(a[0]);
 out_mas (a[0]);
 return 0;
}
void in_mas(int *a)
{ int i;
  for (i=0; i<N; i++)
   scanf("%d", a+i);
}
void out_mas(int *a)
{  int i;
  for (i=0; i<N; i++)
   printf("%d", a+i); 
}
blain вне форума Ответить с цитированием
Старый 01.02.2012, 22:08   #2
Speakon
Пользователь
 
Аватар для Speakon
 
Регистрация: 19.11.2011
Сообщений: 17
По умолчанию

доп функции пишутся перед главной
Speakon вне форума Ответить с цитированием
Старый 01.02.2012, 22:19   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
доп функции пишутся перед главной
Ерунда. Почитай классику.
Цитата:
blain
Ты смотри что пишешь:
Цитата:
void out_mas(int);
А имя переменной-параметра где? Хотя тут (в реализации всмысле) ты его указал:
Цитата:
void out_mas(int *a)
И опять таки - Параметр, указатель, а в теле функции:
Цитата:
scanf("%d", a+i);
Он не разименовывается.
Определись с задачей, как задание звучит?

P.S. Телепаты уже спят, так что если хочешь помощи четко и полностью указывай ошибки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.02.2012, 22:47   #4
blain
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 19
По умолчанию

ааа, понял, всё))))) спасибо))
blain вне форума Ответить с цитированием
Старый 01.02.2012, 22:57   #5
Сыроежка
Форумчанин
 
Регистрация: 01.07.2011
Сообщений: 423
По умолчанию

Цитата:
Сообщение от blain Посмотреть сообщение
помогите, учусь писать функции... вот решил написать 2 для ввода и вывода, ошибка, не пойму почему, подскажите....

Код:
#include <stdio.h>
# define M 5
# define N 4
void in_mas(int);
void out_mas(int);
int main (void)
{int a[N];
 in_mas(a[0]);
 out_mas (a[0]);
 return 0;
}
void in_mas(int *a)
{ int i;
  for (i=0; i<N; i++)
   scanf("%d", a+i);
}
void out_mas(int *a)
{  int i;
  for (i=0; i<N; i++)
   printf("%d", a+i); 
}
У вас в объявлении функций in_mas и out_mas и в их определении указаны разные типы параметров. В объъявлениях у вас параметр указан, как имеющий тип int, например, void in_mas(int);, а в определениях этих функций указан параметр, как имеющий тип указателя на int, то есть int *: void in_mas(int *a). Поэтому следует привести в соответствие объявления функций с их определением.
Далее, согласно логике ваших функций, вы должны передавать в них массив, а вы при вызове их в функции main, передаете значение первого элемента массива. Поэтому вместо

Код:
 in_mas(a[0]);
 out_mas (a[0]);
Должно быть

Код:
 in_mas(a);
 out_mas (a);
Также имеются ошибки и в самих этих функциях. Например, при выводе на консоль вместо предложения

Код:
   printf("%d", a+i);
должно быть

Код:
   printf("%d", *a+i);
то есть нужно выводить значение разыменованного указателя, а не значения самого указателя.
Со мной можно встретиться на www.clipper.borda.ru
Сыроежка вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как подменить адрес возврата функции func на адрес функции f используя переполнение буфера buf и функции gets dmitrii6120 Помощь студентам 6 14.11.2011 20:10
Мини бэйсик:объявление функции, вызов функции , возврат. AL_LORD Помощь студентам 2 14.10.2010 17:48
Программа на СИ++, используя функции работы с файлами и функции <string.h> Аня Popova Фриланс 9 13.09.2010 15:52
Чем отличается описание функции от определения функции в С++? Go6a Помощь студентам 4 18.07.2009 18:07
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57