String 写一段C/C++;创建此从0000到BBBB计数的基数为12的数字列表的代码

String 写一段C/C++;创建此从0000到BBBB计数的基数为12的数字列表的代码,string,loops,for-loop,printing,String,Loops,For Loop,Printing,我不知道该怎么办,我希望它打印0000到BBBB结尾,我一直在尝试使用printf语句,如果有人能帮我弄清楚这一点,那就太好了。谢谢 #include <iostream> #include <iomanip> #include <string> using namespace std; int main() { char digits[] = "0123456789AB";

我不知道该怎么办,我希望它打印0000到BBBB结尾,我一直在尝试使用printf语句,如果有人能帮我弄清楚这一点,那就太好了。谢谢

            #include <iostream>
    #include <iomanip>
    #include <string>
    using namespace std;


    int main()
    {
    char digits[] = "0123456789AB";
    for (int column1=0; column1<=12; column1++)  {  
    for (int column2=0; column2<=12; column2++) {   
    for (int column3=0; column3<=12; column3++) {
    for (int column4=0; column4<=12; column4++) {

    std::cout<< digits[column2]<<endl; 
        }

        }}}




    return(0);
    }
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符数字[]=“0123456789AB”;

对于(int column1=0;column1,最好参数化基和列计数,以避免许多嵌套的
for

#include <iostream>

const int columnCount = 4, base = 12;

char digitToChar(int digit) {
    if(digit >= 0 && digit <= 9) {
        return '0' + digit;
    } else {
        return 'A' + digit - 10;
    }
}

bool increment(int* number) {
    int currentColumn = columnCount - 1;
    ++number[currentColumn];
    while(number[currentColumn] == base) {
        number[currentColumn] = 0;
        --currentColumn;
        if(currentColumn < 0) {
            return false;
        }
        ++number[currentColumn];
    }
    return true;
}

void outputNumber(int* number) {
    for(int i = 0; i < columnCount; ++i) {
        std::cout << digitToChar(number[i]);
    }
    std::cout << std::endl;
}

int main() {
    int number[columnCount] = {0, 0, 0, 0};
    bool overflow = false;
    do {
        outputNumber(number);
        overflow = !increment(number);
    } while(!overflow);
    return 0;
}
#包括
const int columnCount=4,base=12;
字符数字卡(整数位){

如果(digit>=0&&digit4 for循环不是有史以来最漂亮的东西,但它们应该可以工作,我不确定这样做是否值得。所以保留现有的,只需打印所有数字:

std::cout<< digits[column1]<< digits[column2] << digits[column3] << digits[column4]<<endl;

std::coutthank这两种方法都有效,但这对我来说更容易理解。谢谢