有一个代码可以将关系转换为矩阵
当我编译它时,它会产生2个错误。我调试了它,但找不到真正的原因。
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main() {
int i=0,j=0,k=0;
char a[] = "12345";
char b[] = "abcde";
char r[] = "1c2b3e4d5a";
// Array Long
int LA = sizeof(a)-1;
int LB = sizeof(b)-1;
int LR = sizeof(r)-1;
//index function
int index(char arr[],char v){ // [Error] a function-definition is not allowed here before '{' token
for(k=0;k<sizeof(arr)-1;k++){
if(arr[k]==v){
return k;
}
}
}
// trying printf("%d\n%d\n%d\n",LA,LB,LR);
int rel[LA][LB];
for(i=0;i<LR;i+=2){
int indexa = index(a,r[i]);
int indexb = index(b,r[i+1]);
rel[indexa][indexb]=1;
}
//print the matrix
for(i=0;i<LA;i++){
for(j=0;j<LB;j++){
printf("%3d",rel[i][j]);
}
printf("\n");
}
return -1;
} //[Error] expected '}' at end of input
我该如何解决这个问题?
错误:
[错误]在此之前不允许使用功能定义&#39; {&#39;令牌
[错误]预期&#39;}&#39;在输入结束时
我从java代码转换此代码:Converting Relation to Matrix
答案 0 :(得分:0)
您无法在C中的函数内定义函数,并且您当前的代码会尝试在index
内定义main
。在main
的定义之前移动它,你应该没问题:
int index(char arr[],char v) {
for (k = 0; k < sizeof(arr) - 1; k++) {
if (arr[k] == v) {
return k;
}
}
}
int main() {
// code goes here...
}
答案 1 :(得分:0)
问题是,在the_list = [1, 2, 1, 2, 3, 1, 2, 3, 4]
target = 1
keep(the_list, target)
print(the_list)
中,您无法在函数内部定义函数
您在这里所做的是在[1, 1, 1]
函数中定义了$('#inputField').mask('AA/SS/YYYY', {'translation': {
A: {pattern: /[A-Za-z0-9]/},
S: {pattern: /[A-Za-z]/},
Y: {pattern: /[0-9]/}
}
});
函数,这就是为什么会出错的原因。
请尝试以下代码片段,希望它可以解决您的问题
C