1. 程式人生 > >PAT 乙級 1066. 圖像過濾(15)

PAT 乙級 1066. 圖像過濾(15)

輸出格式 amp code clas 例如 void for 顏色 bsp

圖像過濾是把圖像中不重要的像素都染成背景色,使得重要部分被凸顯出來。現給定一幅黑白圖像,要求你將灰度值位於某指定區間內的所有像素顏色都用一種指定的顏色替換。

輸入格式:

輸入在第一行給出一幅圖像的分辨率,即兩個正整數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

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<cmath>
 4 using namespace std;
 5 
 6 int a[505][505];
 7 
 8 void print(int num)
 9 {
10     if(num>=100)
11         printf("
%d",num); 12 else if(num>=10) 13 printf("0%d",num); 14 else 15 printf("00%d",num); 16 } 17 18 int main() 19 { 20 int m,n,l,r,num; 21 scanf("%d%d%d%d%d",&m,&n,&l,&r,&num); 22 for(int i=0;i<m;i++) 23 for(int j=0;j<n;j++) 24 { 25
scanf("%d",&a[i][j]); 26 if(a[i][j]>=l&&a[i][j]<=r) 27 a[i][j]=num; 28 } 29 for(int i=0;i<m;i++) 30 { 31 print(a[i][0]); 32 for(int j=1;j<n;j++) 33 { 34 printf(" "); 35 print(a[i][j]); 36 } 37 printf("\n"); 38 } 39 return 0;; 40 41 }

PAT 乙級 1066. 圖像過濾(15)