gpt4 book ai didi

c - 将参数中的 char 数组的数组(字符串数组的数组)的指针传递给 C 中的函数并调用该函数

转载 作者:行者123 更新时间:2023-11-30 20:57:39 25 4
gpt4 key购买 nike

我正在尝试编写和调用一个函数,该函数将字符串数组作为参数,这样我就可以轻松地逐列使用它。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int N = 14, M = 5;

int main() {
char *dataset[14][5] = {{"Ensoleille", "27,5", "85", "Faible", "Non"},
{"Ensoleille", "25", "90", "Fort", "Non"},
.......,
{"Pluie", "20,5", "91", "Fort", "Non"}};

double entropy_syst(char *t[N][M], int tab_length, int ind, char *col_value);

printf("Entropie du system = %f", entropy_syst(dataset, 14, 4, "Oui"));

return 0;
}

double entropy_syst(char *t[N][M], int tab_length, int ind, char *col_value) {
static int cpt1 = 0, cpt2 = 0;
int i;
double val1 = 0, val2 = 0, val3 = 0, val4 = 0;
double entropy;

printf("\nElement in position 14 2 : %s", *t[13][1]); // Trying to display

for (i = 0; i < tab_length; i++) {
if (strcmp(t[i][ind], col_value) == 0)
cpt1++;
else
cpt2++;
}

val1 = (double)cpt1 / tab_length;
val2 = (double)cpt2 / tab_length;

entropy = -val1 * log2(val1) - val2 * log2(val2);
return entropy;
}

当我编译它时,没有错误,但执行没有提供结果。根据我的理解,我将数组传递给函数参数的方式存在问题。我需要你的帮助。谢谢。

最佳答案

您没有调用该函数。您将函数的声明放在您希望调用它的位置。您应该将其称为

entropy_syst(dataset, 14, 5, "some string");

您应该从调用中获得一个 double 值,您可以选择将其存储在某个变量中。

关于c - 将参数中的 char 数组的数组(字符串数组的数组)的指针传递给 C 中的函数并调用该函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57130975/

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