How to generate 20 digits random number in C

2 Answers

0 votes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

typedef struct {
    char digits[21]; // 20 digits + null terminator
} BigDecimal;

BigDecimal generate20DigitsRandomNumber() {
    BigDecimal dec;
    srand(time(NULL));
    
    for (int i = 0; i < 20; i++) {
        dec.digits[i] = (rand() % 9) + '1'; // Generate digits from '1' to '9'
    }
    
    dec.digits[20] = '\0'; // Null-terminate the string

    return dec;
}

int main() {
    BigDecimal number = generate20DigitsRandomNumber();
    
    printf("%s\n", number.digits);
    
    return 0;
}



/*
run:

95282522322662942458

*/

 



answered Nov 9, 2024 by avibootz
0 votes
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

typedef struct {
    char digits[21]; // 20 digits + null terminator
} BigDecimal;

long double generate20DigitsRandomNumber() {
    BigDecimal dec;
    srand(time(NULL));
    
    for (int i = 0; i < 20; i++) {
        dec.digits[i] = (rand() % 9) + '1'; // Generate digits from '1' to '9'
    }
    
    dec.digits[20] = '\0'; // Null-terminate the string

    long double ld;
      
    return strtold(dec.digits, NULL);
}

int main() {
    long double number = generate20DigitsRandomNumber();
    
    printf("%.0Lf\n", number);
    
    return 0;
}



/*
run:

99742712572439565688

*/

 



answered Nov 9, 2024 by avibootz

Related questions

2 answers 123 views
1 answer 92 views
1 answer 119 views
1 answer 118 views
1 answer 118 views
1 answer 113 views
1 answer 124 views
...