我寫了這個代碼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