gpt4 book ai didi

c - 在 C 中创建图形时出错

转载 作者:太空宇宙 更新时间:2023-11-04 03:42:49 25 4
gpt4 key购买 nike

我正在尝试从矩阵生成图形,但我遇到了一些问题,这是代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_N 10
#define MAX_P 20

//Declaracion del TDA cola
typedef struct Node {
int rafaga;
int id;
struct Node *dret;
struct Node *esq;
int fiscals;
int funcionaris;
int advocats;
} tipoNodo;

typedef tipoNodo *pNodo; // tipo para declarar nodos a un entero

int nodes = 0, funcionarisTotals = 0, advocatsTotals = 0, fiscalsTotals = 0;
Node llista[MAX_N];
int graf[MAX_N*2][3];

void crearGraf(int graf[MAX_N*2][3]) {
FILE *pf;
char caracter; // variable de tipo caracter que va a servir para almacenar los caracteres leidos del archivo
int valor, o, d;
pf = fopen ("graf.txt","r"); // se abre el archivo en forma de lectura
if (!pf) { //en el caso que no se pueda abrir el archivo se manda un mensaje de error
printf ("ERROR: el fichero no existe o no se puede abrir\n");
exit(-1); //mensaje "presiona una tecla para continuar"
}
else {
int arestes = 0;
while (!feof (pf)) {
int j = 0;
nodes = int ((caracter=fgetc(pf))-'0');
printf ("El graf te %d\n nodes", nodes);
for(int i = 0 ; i < nodes ; i++) {
llista->[i].id = i;
llista.[i].rafaga = 1;
}
caracter = fgetc(pf);
o = int ((caracter = fgetc(pf))-'0'); //nodo origen
caracter = fgetc(pf);
d = int ((caracter = fgetc(pf))-'0');//nodo destino
caracter = fgetc(pf);
valor = int ((caracter =fgetc(pf))-'0');//pes de l'aresta
if (o < 0 || d < 0 || valor < 0) break;
printf ("%d %d %d\n",o,d,valor);
graf[o][d] = valor; // es guarda el pes de l'aresta que va de X -> Y a la matriu
arestes++;
}
fclose (pf);//se cierra el fichero
for(int j = 0; j<arestes ; j++) {
if(j == 0) {
llista[graf[j][0]]->dret = llista[graf[j][1]]; // enllacem l'aresta primera
}
if(j != 0 && (graf[j-1][0] == graf[j][0])) {
llista[graf[j][0]]->esq = llista[graf[j][1]]; // enllacem l'aresta esquerra
}
else {
llista[graf[j][0]]->dret = llista[graf[j][1]]; // enllacem l'aresta dreta
}
}
}
}

int main (void)
{
int graf[MAX_N][MAX_N];
crearGraf(graf);
return 0;
}

我得到的错误是:

SC.c:57: error: expected unqualified-id before ‘[’ token
SC.c:58: error: expected unqualified-id before ‘[’ token

for循环中的这两行是什么:

for(int i = 0 ; i < nodes ; i++) {
llista->[i].id = i;
llista.[i].rafaga = 1;
}

我想我真的不明白我在这里使用的变量类型。有人可以帮我吗?我一直在尝试寻找类似的问题,但无法解决我的问题。

谢谢!

最佳答案

将这两行更改为

llista[i].id = i;
llista[i].rafaga = 1;

并且您将访问您似乎正在尝试访问的内容。

使用 -> 运算符取消对指针的引用,而您似乎只想访问数组元素,这是按上述方式完成的。我不能保证您的其余代码的正确性,但这些更改至少应该消除您的编译器错误。

关于c - 在 C 中创建图形时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27202491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com