【问题标题】:How do i call a function that is using my struct我如何调用正在使用我的结构的函数
【发布时间】:2020-07-23 04:59:21
【问题描述】:
#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()部分。打电话给他们时,我得到了这个:[Error] 'Lista'之前的预期表达式

了解调用这些函数时参数的外观。

请忽略这个

看起来您的帖子主要是代码;请添加更多详细信息。
看起来您的帖子主要是代码;请添加更多详细信息。
看起来您的帖子主要是代码;请添加更多详细信息。
看起来您的帖子主要是代码;请添加更多细节。

请忽略这个

【问题讨论】:

  • Lista 是一种类型,而不是变量。它不属于main 中这些函数调用的参数列表中的原样;一个 变量 属于那里(或适当的立即值,在这种情况下不是)。
  • 系统告诉你,你的帖子主要是代码。它是。请添加更多解释。否则可能会减少代码量。一个明显的方法是删除空行。
  • 如果您因为收到主要是代码的警告而无法发布问题,则解决方案不是添加填充文本
  • 您可以例如描述您使用参数调用函数的经验。你有没有学会调用函数void something(int AnInt) 你会像soemthing(int); 一样调用它吗?不是?为什么不呢?

标签: c list function struct typedef


【解决方案1】:

您创建了一个名为Lista 的新类型,它现在代表您的结构。

在您的代码中的此部分之后:

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

你可以创建Lista的实例,

Lista lista;

然后在这个函数中传递lista的地址(使用&amp;)例如:

 ubaci(x,pozicija_ubacivanja,&lista);

【讨论】:

    猜你喜欢
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多