2037 data maker

 
描述

    早在lcl升入大二之前,就听说物理实验是个让人很头疼的东西,于是现在已经是大二的lcl正在各种纠结加头疼中……
    TT同学说得好~“实验做得好~不如数据编得妙”,当lcl发现自己千辛万苦做出来的数据经过千辛万苦的公式计算最终误差大于100%时,非常不幸的崩溃掉了……
    so,lcl决定,果断编数据!但是因为她已经崩溃掉了,所以甚至没有办法为自己编一下数据,这个历史性的重任再一次落在了你的肩上~然而物理实验之所以纠结,是在于它的数据也不是那么好编的,有很多琐碎的要求,诸如数据要求在一定的范围内,诸如数据要求保留几位小数等等。

    为了简化你的工作,lcl只需要你写出生成这些数据的关键语句就好,而为了保证数据看起来足够真实,这些关键语句都需要用随机函数来写。

    只要简单的使用rand()就能生成一个随机整数,而怎么控制随机数的范围呢?怎样生成一个随机实数呢?详见样例吧~

/*
题外话:
1。随机函数包含在头文件<ctime>中。

2。实际使用时为保证实现真正的随机化,须加入srand(time(NULL));语句,详情见教材。

3。大家以后就可以自己随机生成数据来测试自己的程序啦~lcl的数据都是很偷懒的这样出的= =


*/

输入

 输入包括多组数据。


 对于每组数据,包含一个字符x,表示要生成的是整数(d)还是实数(f);   三个整数a、b、c, a表示小数点后保留位数,如果生成的是整数,则a默认为0;b、c表示所生成随机数的上下限(随机数可以等于b或c)。两两之间由空格隔开,每组数据占一行。 (0<=a<=5;0<=b<=c<=10000)

输出

对于每组数据,在每行输出对应的随机函数格式。详见样例。

样例输入
f 2 9357 9394
d 0 7511 9846
f 4 8642 9576
样例输出
(rand() % 939400 + 935700) / pow(10 , 2)
rand() % 2336 + 7511
(rand() % 95760000 + 86420000) / pow(10 , 4)

 

简单的模拟

#include <stdio.h>

int main()
{
	char a[2];
	int i;
	int num1,num2,num3;
	while(scanf("%s",&a)!=EOF)
	{
		scanf("%d %d %d",&num1,&num2,&num3);

		if(a[0]=='f')
		{
			printf("(rand() %% %d",num3);
			for(i=0;i<num1;i++)
			{
				printf("0");
			}
			printf(" + %d",num2);
			for(i=0;i<num1;i++)
			{
				printf("0");
			}
			printf(")  / pow(10 , %d)\n",num1);
			


		}
		else
		{
			printf("rand() %% %d + %d\n",num3-num2+1,num2);

		}

	}
	return 0;
}


 

你可能感兴趣的:(c,工作,测试,null)