جدا سازی ارقام یک عدد n رقمی از سمت چپ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

جدا سازی ارقام یک عدد n رقمی از سمت چپ

0 امتیاز

میخواستم ببینم چطوری میتوانم مستقیم رقم های یک عدد رو از سمت چپ جدا کنم میخواهم مستقیم اینکار را انجام بدهم

میخواهم پس از اینکه مثلا صدگان بیرون کشیدم با این عدد عملیات خاصی انجام بدم بعد برم سراغ دهگان

مثلا عدد475

4

7

5

اگر در مورد الگوریتمش راهنماییم کنید ممنون میشم.زبان سی

سوال شده تیر 14, 1399  بوسیله ی takavar (امتیاز 60)   4 8 18

3 پاسخ

+2 امتیاز
 
بهترین پاسخ

به اون روش جوابش میشه همچین چیزی:

#include <iostream>
using namespace std;

int power(int base, int exp)
{
    int result = 1;
    while(exp) { result *= base; exp--; }
    return result;
}
int findBase(int value){
    int base = 0;
    int limit =0;
    do{
        base++;
        limit = power(10,base);
    }while(value > limit);
    return base-1;
}
int main()
{
    int n;
    cin >> n;
    int base = findBase(n);
    while ( base >= 0){
        int a =power(10,base);
        int numb = n / a;
        n -= numb * a;
        base--;
        cout << numb << endl;
    }

    return 0;
}

 

پاسخ داده شده تیر 14, 1399 بوسیله ی .bahman (امتیاز 137)   3 18 24
انتخاب شد تیر 15, 1399 بوسیله ی farnoosh
+1 امتیاز
#include <vector>
#include <iostream>
using namespace std;
int main()
{
    cout << "enter a number:";
    std::vector<int> numbers ;
    int n;
    std::cin >> n;
    while ( n > 0){
        int mod = n % 10;
        n /= 10;
        numbers.push_back(mod);
    }
    
    for (int i=numbers.size()-1;i >=0;i--)
      cout << numbers[i] << endl;
    

    return 0;
}

 

پاسخ داده شده تیر 14, 1399 بوسیله ی .bahman (امتیاز 137)   3 18 24
خب در این برنامهای هم که شما نوشتید میاد از راست جدا میکنه فکر کنم
بحث من نمایش صرفا نیست من میخوام ابتدای کار بیشترین ارزش مکانی عدد رو که هرچی هست از سمت چپ بکشم بیرون
–1 امتیاز

سلام؛ می‌تونید تبدیل به رشته کنید و بعد هر تغییری که خواستید روش اعمال کنید :

++C

#include <iostream>
#include <string>

int main()
{
    constexpr auto number = 475;
    const std::string number_str = std::to_string(number);

    for (const auto i : number_str)
    {
        std::clog << i << std::endl;
    }
}

 

C

#include <stdio.h>
#include <string.h>

int main(void)
{
    const size_t number = 475;
    char number_str[10] {};

    sprintf(number_str, "%zu", number);

    for (size_t i = 0; i < strlen(number_str); ++i)
    {
        printf("%c\n", number_str[i]);
    }
}

 

پاسخ داده شده تیر 14, 1399 بوسیله ی mg_ramezani (امتیاز 727)   1 1 12
...