我是C语言的新手,想创建一个函数来接收一个整数{'b': [2, 2], 'c': [1, 0], 'd': [1, 1]}
和一个数组n
,并检查我的数组是否包含V
到{{ 1}}。
这是我的实际代码:
1
我在printf上遇到错误,它表示无效使用了void表达式。
答案 0 :(得分:2)
您的checkArray()
函数不返回任何内容(这就是void
的意思),并且您试图打印出“什么都没有”这显然是不可能的。您的checkArray()
函数已经可以打印结果了,因此您不需要在main()
中打印任何内容。
似乎您在else
之前缺少printf("Not Latin")
,并且您的length
变量也不正确。 V
函数的checkArray()
参数只是数组的指针(如引用),它不包含任何大小信息,如果需要,您必须将大小分别传递给函数才能正确遍历数组。
答案 1 :(得分:0)
在我看来,您的程序有两个错误。 1.您没有在函数定义中添加“ else”条件。 2.您已经在函数定义中打印了一些内容,因此无需在main()函数中使用'printf'。 您只需调用该函数即可。 并输入“ return 0;”在主要功能的最后。
答案 2 :(得分:0)
放在一起:
#include <stdio.h>
void checkArray(int n, int* V, size_t length);
void checkArray(int n, int* V, size_t length){
int remain = n;
for(int i = 0; i<length;i++){
for(int j = 0; j<length;j++){
if(V[j] == remain){
remain--;
}
}
}
if(remain == 0){
printf("It's Latin");
else {
printf("Not Latin");
}
}
int main(){
int n;
size_t length;
scanf("%d", &n);
int V[] = {1,2,3,4,5,6,7,8};
length = sizeof(V) / sizeof(V[0]);
checkArray(n, V, length);
return 0;
}