[在此处输入图像说明] [1]
计算此等式的最佳方法是什么?这是我的尝试,我为[2]和[3]得到了正确的答案,但我确信有更好的方法可以做到这一点。我试过结构,但没有运气。数字类型对于负数是否正确?并且在添加和乘法时它们会被传递到输出吗?
感谢您的任何建议!
int main() {
int i, j;
int array[i][j];
array[1][1]= 257; array[1][2]= 504; array[1][3]= 98;
array[2][1]= -148; array[2][2]= -291; array[2][3]= 439;
array[3][1]= 439; array[3][2]= 368; array[3][3]= 71;
int input[3];
float R=0.2, G=2, B=5;
input[2]=R;
input[2]=G;
input[3]=B;
float tot[3];
tot[2]=input[2]*array[1][1] + input[2]*array[1][2] + input[3]*array[1][3];
tot[2]=input[2]*array[2][1] + input[2]*array[2][2] + input[3]*array[2][3];
tot[3]=input[2]*array[3][1] + input[2]*array[3][2] + input[3]*array[3][3];
int add[3];
add[2]=16;
add[2]=128;
add[3]=128;
float out[3];
out[2]=add[2]+tot[2];
out[2]=add[2]+tot[2];
out[3]=add[3]+tot[3];
int z;
for (z = 0; z < 3; z++)
{
printf("\nout[z] = %f", out[z]);
}
return 0;
}
答案 0 :(得分:0)
计算这个等式的最佳方法是什么?
取决于您想要解决的等式。也许您想在您尝试提供的链接中发布等式。如果你更正了链接,有人可能会告诉你。
数字类型对于负数是否正确?
简而言之:你可以使用int。但是:也许你读了更多关于c中的数据类型以及整数和无符号整数之间的差异。您还将“input []”声明为int但指定了浮点数。
我得出了[2]和[3]
的正确答案
您可以两次访问所有阵列[2]。
input[2]=R;
input[2]=G;
input[3]=B;
假设您的阵列访问以1开头,您应该
input[1]=R;
input[2]=G;
input[3]=B;
顺便说一句,我的结果是在纠正数组的索引值之后:
1565.4
1445.0
3937.0