gpt4 book ai didi

c - 反转表的系数

转载 作者:行者123 更新时间:2023-11-30 17:30:30 27 4
gpt4 key购买 nike

我有一个包含 256 个系数的文件,我想反转该文件的每个 64 个系数并将结果保留在另一个文件中。我尝试编写我的想法,但结果是错误的。

int main()
{
/***********************************inversion coefficients*****************/
FILE* org = NULL; // original file
FILE* inv = NULL; // file content inverse coefficient
float det; // readed coefficient
float tabinv[256]; // intermediate table witch will content iverse coefficient
org = fopen("det.txt", "r");
inv = fopen("inverse.txt", "w");
int j = 64;
int p = j;
int copt = 0;
while (copt < 256)
{
for (int i = j - 64; i < j; i++)
{

fscanf(org, "%f", &det);

tabinv[p - 1 - i] = det;

copt++;

}

p = p + 64;

j = p;
}
for (int k = 0; k < 256; k++){
fprintf(inv, "%f\n", tabinv[k]);

}
fclose(org);
fclose(inv);
return 0;
}

最佳答案

您已修复此行-

 tabinv[p - 1 - i] = det; // Don't use same variable i.

通常根据表达式int i = j - 64,当p=j=64,i=0时,此时它存储来自tabinv[63]的值到tabinv[0]。但是当p=j=128,i=64时,它也开始将值从tabinv[63]存储到tabinv[0]。您需要修复此问题以避免错误。

尝试以下更改-

for (int i = j - 64,int k = 0; i < j; i++,k++) // Fix 1
{

fscanf(org, "%f", &det);

tabinv[p - 1 - k] = det; // Fix 2

copt++;

}

关于c - 反转表的系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25094982/

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