从键盘上输入任意整数,逆序输出其各位数字,同时求出其位数及各位数字之和。
从键盘上输入任意整数,逆序输出其各位数字,同时求出其位数及各位数字之和。
这题目咋地做撒?
给点提示,是将输入的任意整数赋给数组呢?还是一个整型的数?
但是输入的位数又不确定,
这怎么搞?
[解决办法]
while(number)
{
a[i++] = number%10;
number = number/10;
}
[解决办法]
会STL吗?
使用vector, 读到一个数就往vector里面push_back数据。直到结束!
求和的话,可以遍历一遍,累加数据!
或者#include<algorithm>
有累加,翻转数据的算法!不多说了,自己去慢慢研究下!
[解决办法]
#include "iostream"#include "string"using namespace std;int main(){ string str; int i,sum = 0; cin >> str; cout<<"逆序:"; for(i=str.length() - 1; i >=0 ; --i){ cout <<str[i]; sum += str[i] - '0'; } cout <<endl; cout <<"位数:"<<str.length()<<endl; cout <<"各位数字之和:" << sum <<endl; return 0;}
[解决办法]
#include <iostream>
using namespace std;
int main()
{
int sum=0,counti=0,i=0;;
int a[100];
int n;
cout<<"请输入一个整数"<<endl;
cin>>n;
while(n)
{
a[i++]=n%10;
n=n/10;
counti++;
}
for (int j=0;j<counti;j++)
{
cout<<a[j]<<endl;
sum+=a[j];
}
cout<<"各数字的和为:"<<sum<<endl;
}