我是一个刚学习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()函数,但到那总出错,请老鸟指点…万分感谢…
>> 本文固定链接: http://www.vcgood.com/archives/1799
[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]
谢谢斌哥
少了个头文件…
hehe呵呵