2007
08-26

我是一个刚学习C语言的新手,本职工作与电脑无关,工作中需要写报表,有标准尺寸和公差,需要写些范围内的数据,为了避免出错,想写个小程序, 求高手帮助!万分感谢(提供思路亦可,写了几次都出错了…)


要求:


输入标准尺寸(如:106.12)


输入公差(公差有的有上下公差如:+/-0.05,有的只有上公差或下公差,如:+0.05/-0 ,-0.05/+0)


输入完毕后,会随机出现12个范围内的数(如:标准数为106.12,公差+-0.05,会出现106.12+0.05到106.12-0.05 之间的数)


用了rand()函数,但到那总出错,请老鸟指点…万分感谢…


新手求助》有 5 条评论

  1. xstar 说:

    [code]
    #include <stdlib.h>
    #include <stdio.h>
    #include <time.h>

    void  initgetval();

    float getval( float fbase, float fmin, float fmax );

    float fbase =  105.05;
    float fmax  =  0.05;
    float fmin  = -0.10;

    int main(int argc, char* argv[])
    {
     initgetval();

     printf( "base min max (etc 10 -0.1 0.2): " );
     scanf( "%f %f %f", &fbase, &fmin, &fmax );

     for( int i = 0; i < 100; i++ ) {
      printf( "%6.2f\n", getval( fbase, fmin, fmax ) );
     }

     return 0;
    }

    void initgetval()
    {
     srand( (unsigned int)time( NULL ) );
    }

    float getval( float fbase, float fmin, float fmax )
    {
     int base;
     int min;

     min = (int)((fbase + fmin) * 100);

     base = (int)((fmax - fmin) * 100 + 1 ); // 加1是因为 base%base = 0

     return ((float)(min + (rand() % base)) / 100);
    }
    [/code]

  2. csyan 说:

    谢谢斌哥

  3. csyan 说:

    少了个头文件…

  4. table 说:

    hehe呵呵

留下一个回复