b459.
圖片的直方圖
| From: [111.185.187.71] |
發表日期
:
2017-08-11 12:39
#include<stdio.h>
#include<math.h>
int main(void){
int eo=0,x,xx,y,yy,r,g,b,zz,rt[256]={0},gt[256]={0},bt[256]={0},att[256]={0},i;
double z;
while(scanf("%d %d",&x,&y)!=EOF){
if(x>0&&y>0){/*x<0||y<0:不是圖片*/
for(yy=0;yy<y;yy++){
for(xx=0;xx<x;xx++){
scanf("%d %d %d",&r,&g,&b);
if(0<=r&&r<=255){/*r<0||r>255:不是圖片*/
if(0<=g&&g<=255){/*g<0||g>255:不是圖片*/
if(0<=b&&b<=255){/*b<0||b>255:不是圖片*/
z=(double)r+(double)g+(double)b;/*先轉成double*/
z=z/3.0f;
z=round(z);
rt[r]++;
gt[g]++;
bt[b]++;
zz=(int)z;/*再轉成int*/
att[zz]++;
}else{
eo=1;
}
}else{
eo=1;
}
}else{
eo=1;
}
}
}
}else{
eo=1;
}
if(eo==0){
for(i=0;i<256;i++){
printf("%d ",rt[i]);
rt[i]=0;
}
printf("\n");
for(i=0;i<256;i++){
printf("%d ",gt[i]);
gt[i]=0;
}
printf("\n");
for(i=0;i<256;i++){
printf("%d ",bt[i]);
bt[i]=0;
}
printf("\n");
for(i=0;i<256;i++){
printf("%d ",att[i]);
att[0]=0;
}
printf("\n");
}else{
for(i=0;i<256;i++){
att[i]=0;
rt[i]=0;
gt[i]=0;
bt[i]=0;
}
printf("不是圖片\n");/*若x<0||y<0||r<0||r>255||g<0||g>255||b<0||b>255:表示此檔案可能不是圖片檔或它是特殊格式的圖片檔*/
}
}
return 0;
}