#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'之前的期望表达式
了解调用这些函数时参数的外观。
请忽略这个看起来您的帖子大部分是代码;请添加更多详细信息。看起来您的帖子大部分是代码;请添加更多详细信息。看起来您的帖子大部分是代码;请添加更多详细信息。看起来您的帖子大部分是代码;请添加更多详细信息。请忽略此
您已经创建了一个名为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);