できた

完成。まぁバカ正直に手書きでやるよか早かったと思われ。

#include <stdio.h>
#include <stdlib.h>

double min2(double a,double b){
	return (a-b<0)? a:b;
}
double min3(double a,double b,double c){
	return (min2(a,b)-c<0)? min2(a,b):c;
}
double max2(double a,double b){
	return (a-b>=0)? a:b;
}
double max3(double a,double b,double c){
	return (max2(a,b)-c>=0)? max2(a,b):c;
}

int main(int argc, char *argv){
	
	int i,j;
	double R[4][3] = {	{0.7 , 0.5 , 0.0},
						{1.0 , 0.0 , 0.0},
						{0.0 , 1.0 , 0.0},
						{0.0 , 0.4 , 0.3}};
					
	double S[3][2] = {  {0.6 , 0.8},
						{0.0 , 1.0},
						{0.0 , 0.9}};
	
	//max-min
	puts("max-min合成");
	for(i=0;i<4;i++){
		for(j=0;j<2;j++){
			printf("%.2f ",max3(min2(R[i][0],S[0][j]),min2(R[i][1],S[1][j]),min2(R[i][2],S[2][j])));
		}
		putchar('\n');
	}
	puts("\nmin-max合成");
	//min-max
	for(i=0;i<4;i++){
		for(j=0;j<2;j++){
			printf("%.2f ",min3(max2(R[i][0],S[0][j]),max2(R[i][1],S[1][j]),max2(R[i][2],S[2][j])));
		}
		putchar('\n');
	}
	
	//min-min
	puts("\nmin-min合成");
	for(i=0;i<4;i++){
		for(j=0;j<2;j++){
			printf("%.2f ",min3(min2(R[i][0],S[0][j]),min2(R[i][1],S[1][j]),min2(R[i][2],S[2][j])));
		}
		putchar('\n');
	}
	
	//max-max
	puts("\nmax-max合成");
	for(i=0;i<4;i++){
		for(j=0;j<2;j++){
			printf("%.2f ",max3(max2(R[i][0],S[0][j]),max2(R[i][1],S[1][j]),max2(R[i][2],S[2][j])));
		}
		putchar('\n');
	}
	
	//max積合成
	puts("\nmax積合成");
	for(i=0;i<4;i++){
		for(j=0;j<2;j++){
			printf("%.2f ",max3(R[i][0]*S[0][j],R[i][1]*S[1][j],R[i][2]*S[2][j]));
		}
		putchar('\n');
	}
	
	return EXIT_SUCCESS;
}