⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 histg.c

📁 图像置乱代码
💻 C
字号:
/* Produce histegram from a given data file */
/*            Y.Zheng, 5/9/90               */

#include <math.h>
#include <stdio.h>
#include <tinanew/tina.h>

/* Usage: histg inputfilename outputfilename */
/* N.B.: inputfilename is in the format suitable for gtool */
/* N.B.: outputfilename is formatted for gtool as well */

main(argc,argv)
int argc;
char *argv[];
{
    FILE *fp,*fpp;
    char ch[1024];
    float y,x;
    float *yy;
    float ymax = -1000, ymin = 1000;
    float width;
    int n,N,i=0;
    int group = 10, freq=0;
    
    if ((fp=fopen(argv[1],"r"))==NULL)
        printf("unable to find input data file\n");
    fpp=fopen(argv[2],"w");
    
    while(readline(fp,ch)!=EOF)
    {
        sscanf(ch,"%d %f",&n,&y);
        if(y>ymax)   ymax = y;
        if(y<ymin)   ymin = y;
        i += 1;
    }
    fclose(fp);
    N = i;
    yy = (float *)ralloc(N*sizeof(float));
    
    i=0;
    fp=fopen(argv[1],"r");
    while(readline(fp,ch)!=EOF)
    {
        sscanf(ch,"%d %f",&n,&y);
        yy[i] = y;
        i += 1;
    }
    
    width = (ymax - ymin)*1.01/group;
    
    x = ymin-0.5*width;
    fprintf(fpp,"%f %d\n",ymin-0.00001,freq);
    while(x<ymax-0.5*width)
    {
        x += width;
        for(i=0;i<N;i++)
        {
            if(yy[i] > x-width*0.5 && yy[i] < x+width*0.5)
                freq += 1;
        }
        fprintf(fpp,"%f %d\n",x-0.5*width+0.00001,freq);
        fprintf(fpp,"%f %d\n",x,freq);
        fprintf(fpp,"%f %d\n",x+0.5*width-0.00001,freq);
        freq = 0;
    }
    fprintf(fpp,"%f %d\n",x+0.5*width,freq);
    fclose(fp);
    fclose(fpp);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -