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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2011, 21:41   #1
Pecho
Пользователь
 
Регистрация: 23.11.2010
Сообщений: 37
По умолчанию Передача массива из main() в функцию и обратно. Си

Доброго времени суток, уважаемые форумчане!

Пишу на С программку, чтобы отработать на ней передачу массива из main() в функцию и обратно. В функцию вроде передавать получается, обратно в main() перекидывать - нет
Можете помочь?

Краткое описание программы: в main() задан массив, пересылаем в функцию F, принимаем результат, вывод на экран. Функция F по сути генерация следующего двоичного числа. Т.е. если на входе будет 001, то на выходе - 010, если на входе - 010, то на выходе - 011 и т.д. Логика, надеюсь, понятна, может даже кому-то и пригодиться этот кусочек кода Закомментированные строки - просто чтобы убедиться, что в F массив приходит правильно

Код:
# include <stdio.h>

int F(int *mass,int n){
      int buff=1;
      int i=n;
      int j;
      while (buff!=0 && i>0){
         i--;
         buff=mass[i];
      }
      if (i!=0){
         mass[i]=1;
         for (j=i+1; j<n; j++)
            mass[j]=0;
      }
//for (i=0; i<n; i++)
//printf("%i", mass[i]);
return *mass[0];
}

int main(){
      int i;
      int mass[4]={0,0,0,1};
      int* Mas[4];
      *Mas[0]=F(&mass[0],4);
      for (i=0; i<4; i++)
            printf("%i",Mas[i]);
return 0;
}
Pecho вне форума Ответить с цитированием
Старый 31.08.2011, 23:06   #2
Pecho
Пользователь
 
Регистрация: 23.11.2010
Сообщений: 37
По умолчанию

Разобрался решение задачки:
Код:
# include <stdio.h>
 
int F(int *mass,int n){
      int buff=1;
      int i=n;
      int j;
      while (buff!=0 && i>0){
         i--;
         buff=mass[i];
      }
      if (i!=0){
         mass[i]=1;
         for (j=i+1; j<n; j++)
            mass[j]=0;
      }

return mass;
}
 
int main(){
      int i;
      int mass[4]={0,0,1,1};

F(&mass[0],4);
      for (i=0; i<4; i++)
            printf("%i",mass[i]);
return 0;
}
Pecho вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Произведение элементов массива в функции (передача массива в функцию) (Delphi) Toxa16 Помощь студентам 1 23.04.2011 04:42
Передача массива в функцию GladiatoR24 Общие вопросы C/C++ 3 24.11.2010 22:51
Возврат массива значений в функцию main. sadf Общие вопросы C/C++ 5 03.03.2010 21:32
Си++. Передача массива в функцию. Diamond2107 Помощь студентам 7 03.12.2009 20:15
Передача массива в функцию Vistar Общие вопросы C/C++ 1 27.04.2009 08:08