C++将int的每一位数提取到数组中(以int数组作为返回值的函数方法)

#include <iostream>
using namespace std;
//可以选择返回void,将int a[100]作为全局变量
int * getNumber(int n,int count)//n为要提取的整数,count为n的位数
{
    static int a[100] = { 0 };//用于存放int的每一位数
	for(int i = count-1; i >=0; i--) {
        //可以用  int i = 0; i <count; i++;这样会让高位变低位如123变为321
        a[i] = n % 10;//将每一位数放到数组中,n%10获得的是个位的数字
        n /= 10;//去除个位上的数字
	}
	return a;
}

int main() {

    int n;
    cin>>n;
    int count=1;
    int n1=n;
    //计算有多少位数
	while (n1 /= 10)
	{
		count++;
	}
    int *p;//获取返回数组a的地址
    p=getNumber(n,count);
    //输出
    for(int i = 0; i < count; i++) {
		cout << *(p + i);

	}

}

使用了函数的方法,更加方便使用。若需要处理的整数n只有1个,可以考虑将整形数组int a[100]作为全局变量(书写更加方便)。

#include <iostream>
using namespace std;
int a[100] = { 0 };//用于存放int的每一位数
void getNumber(int n,int count)
{
	for(int i = count-1; i >=0; i--) {
        //可以用  int i = 0; i <count; i++;这样会让高位变低位如123变为321
        a[i] = n % 10;//将每一位数放到数组中,n%10获得的是个位的数字
        n /= 10;//去除个位上的数字
	}
}

int main() {

    int n;
    cin>>n;
    int count=1;
    int n1=n;
    //计算有多少位数
	while (n1 /= 10)
	{
		count++;
	}
    //输出
    getNumber(n,count);//调用函数
    for(int i = 0; i < count; i++) {
		cout << a[i];

	}

}

猜你喜欢

转载自blog.csdn.net/weixin_51265212/article/details/129388693