Zmienna int do tablicy

0

Siema czy jest jakiś inny sposób alby np. liczbę 567 zapisaną w int wpisać do tablicy w sposób iż tab[0]=5 tab[1]=6 tab[2]=7 pierwsze co mi przyszło do głowy to, to (druga pętla for)

 
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>

using namespace std;

int main()
{
    int t;
    int n,sn;
    vector <int> v;

    cin>>t;
        for(int i=0;i<=t;i++)
    {
        int c=1;
        cin>>n;
        sn=n;
            while((n/=10)!=0)
            {
                c++;
            }
            cout<<c<<endl;

            for(int i=0;i<c;i++)
            {
                v.push_back(sn/pow(10,c-1-i));
                sn=sn-(v[i]*pow(10,c-1-i));
            }

            vector <int>:: iterator it=v.begin();

            for(;it!=v.end();it++)
            {
                cout<<*it;
            }
            cout<<endl;
            v.clear();





        }

    return 0;
}
3
while (n > 0)
{
    v.push_back(n % 10);
    n /= 10;
}
reverse(v.begin(), v.end());
1

To tak najprościej bez używania potęg (!).

#include <inttypes.h>
#include <stdio.h>

#define NUM_DIGITS 19 /* enough for 64bit */

int main(void)
{
  uint8_t buf[NUM_DIGITS + 1] = {0};
  unsigned int val = 123456789;
  int i;

  for (i = 0; i != NUM_DIGITS; ++i)
    {
      buf[i] = val % 10;
      val /= 10;
    }

  for (i = 0; i != NUM_DIGITS; ++i)
    {
      printf("%d ", buf[i]);
    }

  printf("\n");
  return 0;
}

Wsparcie ujemnych liczb, ewentualne odwrócenie i wykrycie kiedy jest koniec liczby zostawiam już do samodzielnej realizacji:-)

0

dobra dzięki ogłupiałem trochę(bardzo).......

2

Ew

#include <iostream>
#include <cassert>
using namespace std;

int digit(char c) {
    assert(c >= '0' && c <= '9');
	return c-'0';
}

char digit(int val) {
	assert(val >= 0 && val <= 9);
	return val+'0';
}

int main() {
	auto num = 54321234590;
	auto str = to_string(num);
	
	for(char c: str) {
		cout
			<< "char: " << c << endl
			<< "int: " << (int)c << endl
			<< "digit(int):" << digit(c) << endl;
	} 
	return 0;
}

http://ideone.com/0vHGOe

1 użytkowników online, w tym zalogowanych: 0, gości: 1