我想问我如何可以计算我的变量y的RGB颜色强度。
RGB_Trypel结构体中的r,g,b字母表示数组rot, gelb, gruen, weiss, schwarz的每个数组元素。所以这里我需要将r g b数组元素与变量y中显示的数字相乘
如果你能帮助我,我真的很高兴。
#define CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct RGB_Trypel
{
unsigned char r, g, b; // speichert Werte nur bis 255 und positive Werte
};
int main(void)
{
struct RGB_Trypel rot = { 255,0,0 }, gelb = { 255,255,0 }, gruen = { 0,255,0 };
const struct RGB_Trypel weiss = { 255,255,255 };
const struct RGB_Trypel schwarz = { 0,0,0 };
struct RGB_Trypel fafeld[5] = { rot, gelb, gruen, weiss, schwarz };
int n = 5;
unsigned char intensiteat(struct RGB_Trypel t);
{
int = y;
y = 0.299 * r + 0.587 * g + 0.114 * b;
}
for (int i = 0; i < n; i++)
{
printf("(%3d,%3d,%3d): t intensiteat(%d) n",fafeld[i].r, fafeld[i].g, fafeld[i].b, intensiteat(fafeld[i]);
}
return 0;
}
我真的不确定如何将我的结构数组元素放入函数中,并让它在我的y变量中乘以以下数字。
你最大的问题是这个
unsigned char intensiteat(struct RGB_Trypel t);
{
int = y;
y = 0.299 * r + 0.587 * g + 0.114 * b;
}
看起来像是试图在另一个函数中定义一个函数。这行不通。移动到main之前。这样的:
unsigned char intensiteat(struct RGB_Trypel t)
{
int = y;
y = 0.299 * r + 0.587 * g + 0.114 * b;
}
int main(void)
{
第二,在函数内部引用结构体的字段,这样做:
unsigned char intensiteat(struct RGB_Trypel t)
{
int = y;
y = 0.299 * t.r + 0.587 * t.g + 0.114 * t.bb;
}
你有很多其他的错误,但这将让你开始
顺便说一句,你错过了前面的_定义。应该是:
#define _CRT_SECURE_NO_WARNINGS