15,878,231 members
See more:
Conditions:
1.cannot use random functions
2.cannot use loops
3.output stored in file

What I have tried:

I don't know what to do i didn't try and i don't have idea
Posted
Updated 18-Jul-22 5:22am

## Solution 1

The first thing you need is a simple algorithm for (pseudo) random number generation. Have a look at Lehmer random number generator - Wikipedia[^].

Patrice T 1-May-22 14:17pm
+5
CPallini 1-May-22 16:40pm
Thank you.
jsc42 1-May-22 17:37pm
That algorithm (plus most others) needs a seed to generate the value. The seed should be randomly chosen, which takes us back to square 1 again unless you have some other pseudo-random number generator to start with (e.g. current time as milliseconds since the epoch mod some large no). Alternatively, see https://xkcd.com/221/ but I doubt that that would be acceptable in the OP's situation.
CPallini 2-May-22 2:14am
Every pseudo-random generator, I am aware of, needs a seed.
Bibek Das 2-May-22 0:19am
Can we do this problem with recursion???

## Solution 2

```#include<stdio.h>
#include<stdlib.h>

int main()
{
int *addr, random, lower, upper, choice, count;

FILE *f1ptr, *f2ptr;

f1ptr = fopen("a.txt","w");
f2ptr = fopen("random.txt", "a+");
if(f1ptr == NULL || f2ptr == NULL)
{
printf("Error!");
exit(1);
}

do{
printf("\nEnter the lower and upper bound: ");
scanf("%d %d", &lower, &upper);

addr = (int *)malloc(sizeof(int));

fscanf(f1ptr, "%d", &random);

fclose(f1ptr);

if(random < 0)
random *= -1;

random = (random % (upper - lower)) + lower;

printf("%d\n", random);

fprintf(f2ptr, "%d", random);

printf("Press 1 to continue or 0 to exit: ");
scanf("%d", &choice);

printf("\n");
}while(choice != 0);

fclose(f2ptr);

return 0;
}```

Bibek Das 18-Jul-22 11:25am
But i don't know why it is getting terminated after 2 or 3 steps
jeron1 18-Jul-22 11:37am
You should really update your original post with this data. In the do-while loop, on the second iteration, you're using f1ptr even though you've previously called fclose(f1ptr).
Patrice T 18-Jul-22 11:39am
Use Improve question to update your question.
So that everyone can pay attention to this information.
Richard MacCutchan 18-Jul-22 11:58am
This line is incorrect:
```      fprintf(f1ptr, "%d", addr);
```

The variable `addr` is a pointer, not an integer value, so why not just declare it correctly. You also need to initialise its content with an actual number before writing it to a file.

You also try to write to the file and immediately read from it without closing or rewinding, so whatever you read will not be the content of the file. To be honest all the code connected with the `f1ptr` file is redundant and should be replaced by calls to the `rand` function.
Bibek Das 18-Jul-22 12:13pm
But in my assignment they said we cannot use rand or srand and loop for this program

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Top Experts
Last 24hrsThis month
 Pete O'Hanlon 80 Richard Deeming 60 Andre Oosthuizen 55 M Imran Ansari 50 Ravi Bhavnani 50
 Pete O'Hanlon 1,535 OriginalGriff 1,240 Richard Deeming 743 Graeme_Grant 700 Dave Kreskowiak 549

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900