一段代码看不懂,请大家帮忙

hanxuemaxavier 2006-08-21 04:11:38
本人在看一段代码,这个代码大致的意思是说通过一个array转变成红篮绿三色的一种图片格式,程序挺长,一下的代码是一下断,是一个使文件编码杂乱的命令


void scramble(
int r[MMAX_ROWS][MMAX_COLUMNS],
int g[MMAX_ROWS][MMAX_COLUMNS],
int b[MMAX_ROWS][MMAX_COLUMNS],
int m[MMAX_ROWS][MMAX_COLUMNS],
int width, int height)
{
int i,j;
for (i=0;i<height;i++){
for(j=0;j<width;j++){
m[i][j] = 1+(int)((double)minInt(r[i][j],g[i][j],b[i][j])*rand()/(RAND_MAX+1.0));
r[i][j] ^= SCRAMBLE*m[i][j];
g[i][j] ^= SCRAMBLE*m[i][j];
b[i][j] ^= SCRAMBLE*m[i][j];
}
}
}

其中的m[i][j] = 1+(int)((double)minInt(r[i][j],g[i][j],b[i][j])*rand()/(RAND_MAX+1.0));
看不懂是什么意思,请哪位高手帮忙讲一下,或者整个程序稍微讲一下概念



如果通过上面这个代码,写一个功能相反的代码行吗?
void unScramble(int r[MMAX_ROWS][MMAX_COLUMNS],
int g[MMAX_ROWS][MMAX_COLUMNS],
int b[MMAX_ROWS][MMAX_COLUMNS],
int m[MMAX_ROWS][MMAX_COLUMNS],
int width, int height)
{
}

一个是scramble,需要写一个unscramble

谢谢各位
...全文
204 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cnwanglin 2006-08-21
  • 打赏
  • 举报
回复
m[i][j] = 1+(int)((double)minInt(r[i][j],g[i][j],b[i][j])*rand()/(RAND_MAX+1.0));

minInt是什么,求三个值里最小的?

rand()是库函数 ,求伪随机值

(int)是强制转换 ,可以理解为截取整数部分

+ 1 就是把转换后的值加1

m[i][j]= 是赋值

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧