Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,990 questions

51,935 answers

573 users

How to split a number into an array of digits in C

2 Answers

0 votes
#include <stdio.h>
 
void split_number(int digits[], int n, int size) {
    int i = size - 1;
    
    while (n > 0) {
        digits[i] = n % 10;
        n = n / 10;
        i--;
    }
}
 
int main(void)
{
    int digits[] = {0,0,0,0,0,0,0,0,0,0};
    int num = 230138;
    int size = sizeof(digits) / sizeof(digits[0]);
 
    split_number(digits, num, size);
     
    for (int i = 0; i < size; i++) {
        printf("%2d", digits[i]);
    }
    
    printf("\n");
    
    int num_len = log10(num) + 1;
    
    for (int i = size - num_len; i < size; i++) {
        printf("%2d", digits[i]);
    }
     
    return 0;
}
 
   
   
   
/*
run:
   
0 0 0 0 2 3 0 1 3 8
 2 3 0 1 3 8
 
*/
 

 



answered Oct 2, 2023 by avibootz
edited Oct 3, 2023 by avibootz
0 votes
#include <stdio.h>
#include <math.h> 
 
void split_number(int digits[], int n, int size) {
    int len = log10(n) + 1;
    int i = len - 1;
 
    while (n > 0) {
        digits[i] = n % 10;
        n = n / 10;
        i--;
    }
}
 
int main(void)
{
    int digits[] = {0,0,0,0,0,0,0,0,0,0};
    int num = 230138;
    int size = sizeof(digits) / sizeof(digits[0]);
 
    split_number(digits, num, size);
     
    for (int i = 0; i < size; i++) {
        printf("%2d", digits[i]);
    }
    
    printf("\n");
    
    int num_len = log10(num) + 1;
    
    for (int i = 0; i < num_len; i++) {
        printf("%2d", digits[i]);
    }
     
    return 0;
}
 
 
 
/*
run:
       
2 3 0 1 3 8 0 0 0 0
 2 3 0 1 3 8
  
*/

 



answered Oct 2, 2023 by avibootz

Related questions

1 answer 125 views
1 answer 131 views
1 answer 112 views
2 answers 235 views
2 answers 410 views
1 answer 219 views
...