gpt4 book ai didi

c - 将 float 放入二维数组中

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

我是 C 语言新手,如果这很明显,我提前表示抱歉。

基本上,我尝试将如下所示的输入放入二维数组中。

C 3.25 18. 0.01 .01 .02 .04 .08 .02 .02
A 0 7.5 .054 .031 .016 .008 .116 .124 .147
D -1.5 0.5 .012 .025 .05 .1 .1 .1 .025

我编写了一个函数来了解变量的数量(即行数),并且我获取了 float 。

count = numofvar(tokens);
scanf("%d %ld", &count_inter, &count_exper);
float data[count][count_inter + 3];

for(i=0; i<count; i++)
{
for(j=0; j<count_inter+3; j++)
{
scanf("%f", &data[i][j]);
}
}

printf("\n");

for(i=0; i<count; i++)
{
for(j=0; j<count_inter+3; j++)
{
printf("%f ", data[i][j]);
}
printf("\n");
}

除了 float 之外,我还尝试将开头的字母存储到数组中。 (了解这些值对应什么)。但是我得到了这个奇怪的输出:

-3.817211 0.000000 0.000000 0.000000 -3.817268 0.000000 -3.817295 
0.000000 0.000000 -3.817238 0.000000 -3.817232 0.000000 0.000000
-309364117239383605807310438400.000000 0.000000 20366038377015803904.000000 -65873193319006208.000000 0.000000 0.000000 -311890318855195825296505831424.000000
pc:~$ A 0 7.5 .054 .031 .016 .008 .116 .124 .147
A: command not found
pc:~$ D -1.5 0.5 .012 .025 .05 .1 .1 .1 .025

我应该做什么?

最佳答案

您用于解析输入行的代码似乎与输入格式没有关系,因此您有工作要做。我建议将存储数组放在一边一段时间,然后集中精力编写一个程序来读取输入并用注释将其写出,例如

Label: C
List length: 9
1: 3.25
2: 18.0
3: 0.01
... etc.

...只是为了向自己证明你可以读取输入格式。

然后你需要找到一种方法来存储你的值(value)观。您不能char存储在float[]中或将float存储在char<中——或者至少,不是没有一些肮脏的伎俩,比如强制转换。

避免肮脏的伎俩。该语言的类型系统可以为您提供帮助。不要反抗。

最好将标签存储在单独的数组中,因此:

 char labels[count];
float labels[count][count_inter];

这应该足以让一个工作程序运行起来。

还有其他方法,使用structunion等结构。当您了解这些内容后,您也许可以回到该程序并尝试这些方法以使代码更加优雅。

关于c - 将 float 放入二维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43848717/

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