Как мне вызвать функцию, которая использует мою структуру - PullRequest
0 голосов
/ 10 апреля 2020
#include <stdio.h>
#include <stdlib.h>

#define MAX 10

typedef struct{
  int zadnji;
  int elementi[MAX];
} Lista;


void ubaci (int x, int pozicija_ubacivanja, Lista *pokLista) 
{
  int pozicija;
  if (pokLista->zadnji >= MAX-1)
    printf("Lista je puna!"); 
  else if ((pozicija_ubacivanja>pokLista->zadnji+1) || (pozicija_ubacivanja<0) )
    printf("Pozicija ne postoji!"); 
  else {
            for (pozicija=pokLista->zadnji; pozicija >= pozicija_ubacivanja; pozicija--)
                 pokLista->elementi[pozicija+1]= pokLista->elementi[pozicija];
            pokLista->zadnji++;
            pokLista->elementi[pozicija_ubacivanja] = x;
           }
}

void obrisi(int pozicija_brisanja, Lista *pokLista) {
  int pozicija;
  if ( (pozicija_brisanja>pokLista->zadnji ) || (pozicija_brisanja<0) )
    printf("Pozicija ne postoji!");
  else {
    pokLista->zadnji--;    
    for (pozicija=pozicija_brisanja; pozicija<=pokLista->zadnji; pozicija++)
       pokLista->elementi[pozicija] = pokLista->elementi[pozicija+1];

  }
}

int trazi (int x, Lista *pokLista) {
  int pozicija;
  for (pozicija=0; pozicija<=pokLista->zadnji; pozicija++)
     if (pokLista->elementi[pozicija] == x) return pozicija;
  return -1;
}

int main(int argc, char *argv[]) {
    int pozicija_ubacivanja;
    int pozicija_brisanja;
    int i,x,z,pozicija,temp;

    printf("Koji broj ubaciti ?");
    scanf("%d",&x);

    printf("Na koju poziciju ?");
    scanf("%d",&pozicija_ubacivanja);

    ubaci(x,pozicija_ubacivanja,Lista);

    printf("Koju poziciju obrisati ?");
    scanf("%d",&pozicija_brisanja);

    obrisi(pozicija_brisanja, Lista);

    printf("Koju element za pretraziti ?");
    scanf("%d",&z);
    trazi (z, Lista);
    temp = pozicija;
    printf("Pozicija je %d", temp);

    return 0;
}

Все функции и typedef были предоставлены профессором, моя работа - написать main () часть программы. При вызове их я получаю следующее: [Ошибка] ожидаемое выражение перед 'Lista'

Idk, как должны выглядеть аргументы при вызове этих функций.

Пожалуйста, игнорируйте это

Похоже, ваш пост в основном кодовый; пожалуйста, добавьте еще несколько деталей.
Похоже, ваш пост в основном кодовый; пожалуйста, добавьте больше деталей.
Похоже, ваш пост в основном кодовый; пожалуйста, добавьте еще несколько деталей.
Похоже, ваш пост в основном состоит из кода; пожалуйста, добавьте еще некоторые детали.

Пожалуйста, игнорируйте это

1 Ответ

2 голосов
/ 10 апреля 2020

Вы создали новый тип с именем Lista, который теперь представляет вашу структуру.

После этого раздела в вашем коде:

int main(int argc, char *argv[]) {
    int pozicija_ubacivanja;
    int pozicija_brisanja;
    int i,x,z,pozicija,temp;

Вы можете создать экземпляр Lista,

Lista lista;

Затем передать адрес lista ( используя &), например, в этой функции:

 ubaci(x,pozicija_ubacivanja,&lista);
...