Ref: ITSA 51 - [Problem 3] 中值濾波器
/*******************************************************/
/* [Problem 3] 中值濾波器 */
/* Author: awei0905 [at] awei0905.blogspot.tw */
/* Version: 2017/05/22 */
/*******************************************************/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n;
scanf("%d", &n);
while (n--) {
int m, seq[3];
scanf("%d %d %d", &m, seq, &seq[1]);
printf("%d ", seq[0]);
m -= 2;
while (m--) {
scanf("%d", &seq[2]);
if (seq[2] <= seq[0]) {
if (seq[0] <= seq[1])
seq[1] = seq[0];
else if (seq[1] <= seq[2])
seq[1] = seq[2];
}
else {
if (seq[1] < seq[0])
seq[1] = seq[0];
else if (seq[2] < seq[1])
seq[1] = seq[2];
}
printf("%d ", seq[0] = seq[1]);
seq[1] = seq[2];
}
printf("%d\n", seq[2]);
}
return 0;
}
Debug: I/O不斷比大小,答案就出來了。
2
9
3 3 5 3 3 9 4 4 4
10
4 15 3 4 4 1 3 4 4 8
3 3 3 3 3 4 4 4 4
4 4 4 4 4 3 3 4 4 8
沒有留言:
張貼留言