2019年11月29日
最小を見つけるために、再びそれを横断する:問題の論理機能に注意を呼び出す再び書き込みを開始する1046くし良いアイデア。スムーズなを思い付くために多くの方法があります✍
する#include <stdio.hに> する#include <STDLIB.H> INT find_min(INTマップ[16] [3]、INT R、G INT、INT B) { int型のDIS [16]、min_index = 0、分= 255 * 255 * 255、I。 (I ++; I <16、I = 0)のための { [DIS [I] =(R-マップ[i]が[0])*(Rマップ[i]が[0])+(G-マップ[I] 1])*(Gマップ[i]を[1])+(B-マップ[I] [2])*(B-マップ[I] [2])。 } のためには、(i 0 =; I <16; I ++) { IF(DIS [I] <分) { min_index = I。 分= DIS [i]は、 } } 戻りmin_index。 } int型のmain() { int型のマップ[16] [3]。 INTインデックス、I、R、G、B。 ための式(I = 0; iが<16; I ++) { scanf関数( "%D%D%D"、&マップ[i]が[0]、&マップ[I] [1]、&マップ[I] [2])。 } のscanf( "%D%D%D"、&R&G、およびB)。 一方、(R> = 0) { インデックス= find_min(マップ、R、G、B)。 printf(R、G、B、地図[インデックス] [0]、地図[インデックス] [1] "(%のDは、%D、%d)は(%のDは、%D、%d)は\ nにマップ" 、地図[インデックス] [2])。 scanf関数( "%D%D%D"、&R&G、およびB)。 } 0を返します。 }