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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2013, 14:37   #1
sandra1611
 
Регистрация: 23.10.2013
Сообщений: 5
По умолчанию Как вызвать функцию в main'е

здравствуйте! подскажите пожалуйста как вызвать эти функции в main'е?
Код:
Node *Add_D(Node*Top, int d, int d1) {
       FILE *f;
    f=fopen("my.txt","r");
    if(f==NULL){
                printf("ошибка");
                getch();
                exit(0);
                }
    while(!feof(f)) {
    int z=fscanf(f, "%d%d", &d, &d1);
    if (z!=2) break;
    printf("%d %d \n", d, d1);   
         Node *newel=new Node;
         newel->data=d;
         newel->data1=d1;
         newel->next=NULL;
         if(Top==NULL) return newel;
         Node *temp=Top;
         while(temp->next)
         temp=temp->next;
         temp->next=newel;
         }
          fclose(f);
          return Top;  
         }


void show(Node*Top) {
       while(Top) {
                  printf("(%d, %d)->", Top->data, Top->data1);
                  Top=Top->next;
                  }}


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.10.2013 в 15:06.
sandra1611 вне форума Ответить с цитированием
Старый 23.10.2013, 14:59   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А никак. Ты не описал что такое Node.
В теории:
Код:
{
Node top*=Add_D(0,1,2);
Node n*=Add_D(top,3,4);
show(top);
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.10.2013, 20:32   #3
sandra1611
 
Регистрация: 23.10.2013
Сообщений: 5
По умолчанию

вот. как теперь вызвать те функции все таки?
Код:

typedef struct node{
		   int data;
		   int data1;
		   node *next;
		   } Node;
sandra1611 вне форума Ответить с цитированием
Старый 23.10.2013, 20:36   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну судя по всему я угадал )
Вызывать так ИМХО как я показал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.10.2013, 20:43   #5
sandra1611
 
Регистрация: 23.10.2013
Сообщений: 5
По умолчанию

т.е в мэйне прописать это?

Код:
{
Node top*=Add_D(0,1,2);
Node n*=Add_D(top,3,4);
show(top);
}
sandra1611 вне форума Ответить с цитированием
Старый 23.10.2013, 20:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Т.е. обратится к автору стибренного кода с вопросом: "что писать?"
Да. в Мейне писать это - но тебе это не поможет, потому как ни файла нет, ни понятий о работе с указателями в Си.
То что ты напишешь будет верно, но далеко не факт что оно сработает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.10.2013, 20:54   #7
sandra1611
 
Регистрация: 23.10.2013
Сообщений: 5
По умолчанию

ну вот я за помощью и обращаюсь
sandra1611 вне форума Ответить с цитированием
Старый 23.10.2013, 21:07   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хорошо. Напиши этот код как ты думаешь - запусти. Что получится?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.10.2013, 10:07   #9
sandra1611
 
Регистрация: 23.10.2013
Сообщений: 5
По умолчанию

программа создает один узел списка и выводит его. и все- дальше не создает узлы. что делать? вот программа вся
Код:

typedef struct node{
		   int data;
		   int data1;
		   node *next;
		   } Node;
		   
Node *Add_D(Node*Top, int d, int d1) {
       FILE *f;
    f=fopen("my.txt","r");
    if(f==NULL){
                printf("Файл не найден");
                getch();
                exit(0);
                }
    
    while(!feof(f)) {
    Top=NULL;  
    Node *newel=new Node;
    int z=fscanf(f, "%d%d", &d, &d1);
    if (z!=2) break;
    printf("%d %d \n", d, d1); 
         newel->data=d;
         newel->data1=d1; 
         newel->next=NULL;       
         if(Top==NULL) return newel;
         printf("hi"); 
         Node *temp=Top; 
         while(temp->next)
         temp=temp->next; 
           
         temp->next=newel;
         return Top; 
         }
          fclose(f);
           
         }

void show(Node*Top) {
       while(Top) {
                  printf("(%dx^%d)->", Top->data1, Top->data);
                  Top=Top->next;
                  }} 

int main(int argc, char *argv[])
{
system("chcp 1251");
int d,d1;
Node *nodeTop = new Node;
  nodeTop = Add_D(nodeTop, d, d1);

show(nodeTop);        

    system("PAUSE");
    return EXIT_SUCCESS;
}
sandra1611 вне форума Ответить с цитированием
Старый 26.10.2013, 13:18   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
что делать?
Не морочить голову, а заказать решение за денюжку.
Чтоб создать узел нужно последовательно вызывать функцию Add_D, примерно так как я выше писал. Еще один популярный способ - в цикле:
Код:
Node top*=Add_D(0,1,2);
Node n*=Add_D(top,3,4);
for(int i=0;i<1000000;i++) n=Add_D(top,rand()%100,rand()%200);
В этом случае цикл наполнит список случайными числами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вызвать javascript функцию в С# gkm_kgm C# (си шарп) 3 23.04.2013 10:51
Как вызвать функцию.. Аделинкка Общие вопросы Delphi 10 21.12.2012 10:47
Как вызвать функцию из класса ? Silly Student Общие вопросы C/C++ 2 13.10.2011 20:07
Как вызвать функцию из юнита? Des Общие вопросы Delphi 5 06.11.2010 12:47
Как вызвать функцию? blackstersl Общие вопросы Delphi 10 07.06.2009 19:22