傳送門
https://pintia.cn/problem-sets/994805260223102976/problems/994805266514558976
題目
圖像過濾是把圖像中不重要的像素都染成背景色,使得重要部分被凸顯出來。現(xiàn)給定一幅黑白圖像,要求你將灰度值位于某指定區(qū)間內(nèi)的所有像素顏色都用一種指定的顏色替換扰路。
輸入格式:
輸入在第一行給出一幅圖像的分辨率州叠,即兩個正整數(shù)M和N(0 < M, N <= 500)屎债,另外是待過濾的灰度值區(qū)間端點A和B(0 <= A < B <= 255)、以及指定的替換灰度值擅威。隨后M行,每行給出N個像素點的灰度值冈钦,其間以空格分隔裕寨。所有灰度值都在[0, 255]區(qū)間內(nèi)。
輸出格式:
輸出按要求過濾后的圖像派继。即輸出M行,每行N個像素灰度值捻艳,每個灰度值占3位(例如黑色要顯示為000)驾窟,其間以一個空格分隔。行首尾不得有多余空格认轨。
輸入樣例:
3 5 100 150 0
3 189 254 101 119
150 233 151 99 100
88 123 149 0 255
輸出樣例:
003 189 254 000 000
000 233 151 099 000
088 000 000 000 255
分析
先讀入兩個數(shù)绅络,m行n列,接著讀入上限a和下限b嘁字,最后讀入替換的數(shù)恩急。
每次輸入時檢測若則不在范圍內(nèi),則正常輸出纪蜒,不足3位前面補0衷恭,若在范圍內(nèi),則給定的數(shù)替換纯续,同樣不足3位要前面補0随珠。
最后注意一下末尾不要有多余空格就過了。
源代碼
//C/C++實現(xiàn)
#include <iostream>
using namespace std;
int main(){
int m, n, a, b, r;
scanf("%d %d %d %d %d", &m, &n, &a, &b, &r);
int tmp;
for(int i = 0; i < m; ++i){
for(int j = 0; j < n; ++j){
scanf("%d", &tmp);
if(j != 0){
printf(" ");
}
if(tmp >= a && tmp <= b){
printf("%03d", r);
}
else{
printf("%03d", tmp);
}
}
printf("\n");
}
return 0;
}