題目原文:
圖像過濾是把圖像中不重要的像素都染成背景色,使得重要部分被凸顯出來。現給定一幅黑白圖像,要求你將灰度值位于某指定區間內的所有像素顏色都用一種指定的顏色替換。
輸入格式:
輸入在第一行給出一幅圖像的分辨率,即兩個正整數M和N(0 < M, N <= 500),另外是待過濾的灰度值區間端點A和B(0 <= A < B <= 255)、以及指定的替換灰度值。隨后M行,每行給出N個像素點的灰度值,其間以空格分隔。所有灰度值都在[0, 255]區間內。
輸出格式:
輸出按要求過濾后的圖像。即輸出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
C代碼:
#include?"stdio.h"
int?main()?{
int?m,n,a,b,color,count=0,temp;
scanf("%d?%d?%d?%d?%d",&m,&n,&a,&b,&color);
for?(int?i?=?0;?i?
for?(int?j?=?0;?j?
scanf("%d",?&temp);
if?(temp?>=?a?&&?temp?<=?b)
temp?=?color;
if?(j?!=?0)?printf("?");
printf("%03d",?temp);
}
printf("\n");
}
return?0;
}
這里可以用%03d強制輸出三位數,然后邊輸入邊判斷。
完美通過