今天在学习c++的时候遇到一个小问题,如何实现将一个整数的每位数字存入数组中,题目要求输入的是int类型的整数number。由于能力有限,在写代码时发现整数倒序(低位到高位)相对更简单一些。我主要是通过定义函数来实现这一目的,为了实现完全的自主编码,程序未不使用c++提供的pow()函数,而是自己编写了selfPow()函数,以及实现正序存储的getNum()函数。
代码如下:
//输出int整数的每一位数字 #includeusing namespace std; void getNums(int, int nums[]); int selfPow(int, int); int main() { int i = 0, number = 1, nums[10] = { 0 }; cout << "请输入整数" << endl; cin >> number; getNums(number, nums); for (int i = 0; i < 10; i++) cout << nums[i] << endl; return 0; } void getNums(int number,int nums[]) { //获取整数位数 int numLen = 0, number1 = number; while (number1 > 0) { number1 /= 10; numLen++; } for (int i = 0; i < numLen; i++) { nums[i] = number / selfPow(10, numLen-1 - i); number = number % selfPow(10, numLen-1 - i); } } int selfPow(int number, int n) { int result = number; if (n == 0) return 1; else if (n == 1) return number; else if (n > 1) { while (n > 1) { result *= number; n--; } } return result; }
真正实现功能的函数如下:
void getNums(int number,int nums[])
{
//获取整数位数
int numLen = 0, number1 = number;
while (number1 > 0)
{
number1 /= 10;
numLen++;
}
for (int i = 0; i < numLen; i++)
{
nums[i] = number / selfPow(10, numLen-1 - i);
number = number % selfPow(10, numLen-1 - i);
}
}
如果您有更好,更简洁的思路,可以讨论下吗?



