我写了这个代码prim的算法piesese,我得到这个错误:“预期的标识符或'('之前'int'”。我有一个头文件,主和另一个.c文件。 这是错误:“s algoritm 2 \ prim.h | 6 |错误:预期的标识符或'('之前'int'| s algoritm” 任何人都可以告诉我为什么会出现此错误?预期的标识符或'('之前'int'
头文件
#ifndef prim
#define prim
#define nmax 10
void prim(int mat[nmax][nmax],int x,int n ,int m);
#endif // graphs
PRIM.c文件
#include <stdio.h>
#include <stdlib.h>
#include "prim.h"
void prim(int mat[nmax][nmax], int x, int n, int m)
{
int viz[nmax], u, v, min, total = 0;
int i, j, counter;
for(i = 0; i < n; i++)
{
viz[i] = 0;
}
viz[x] = 1;
for(counter = 0; counter < m; counter++)
{
min = 999;
for(i = 0; i < n; i++)
{
if(viz[i]==1)
{
for(j = 0; j < n; j++)
{
if(viz[j]!=1)
{
if(min > mat[i][j])
{
min = mat[i][j];
u = i;
v = j;
}
}
}
}
}
viz[v] = 1;
total += min;
printf("\nMuchie gasita de la %d -> %d de weight %d", u, v, min);
}
printf("\nDimensiunea arborelui de acoperire minim: ", total);
}
main.c文件
#include <stdio.h>
#include <stdlib.h>
#include "prim.h"
void main()
{
FILE *fin;
char sursa[20];
int mat[nmax][nmax], n, m, i, j, x;
printf("\nIntroduceti fisierul sursa: ");
gets(sursa);
fin = fopen(sursa, "r");
if(fin == NULL)
{
perror("\nEroare la deschiderea fisierului!");
exit(-1);
}
fscanf(fin, "%d %d", &n, &m);
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++){
fscanf(fin, "%d", &mat[i][j]);
if(mat[i][j] == 0)
{
mat[i][j] = 999;
}
fprintf(stdout, " %3d ", mat[i][j]);
}
fprintf(stdout, "\n");
}
printf("\nIntroduceti nodul sursa: ");
scanf("%d", &x);
prim(mat, x, n, m);
}
请显示整个错误消息,在你的问题 – Marcin
不是***在你的问题***。阅读该评论很难!你应该[**编辑**](http://stackoverflow.com/posts/23789100/edit)你的问题把错误本身的问题! – abelenky
您需要重新格式化第一段以突出显示错误消息(这对我来说似乎很奇怪)。顺便说一句,它是*算法*。 – didierc