创建和调用功能

时间:2015-09-18 02:43:29

标签: c++ function c++11

在处理模块时,我遇到了一个问题,无法找出问题的解决方案。 这是个问题。 程序将从用户输出的输入数字和位置获得该位置的数字。 例如 如果number = 256314且position = 0,则输出应为" 2" 如果number = 1256985且position = 3,则输出应为" 6" 这是我的代码

#include <iostream>
#include <cmath>
using namespace std;
int returnDigitAtPosition(int &position,int &totaldigits,int &number)
{

    {   
         int positiondigit = number/pow(10,(totaldigits - position));
         positiondigit = positiondigit % 10;
            return positiondigit;
    }
}  
 int main()
{
    int number = 0,position = 0,digit = 0;
    cout << " Enter the number :  ";
    cin>>number;
    cout<<" Enter the position : ";
    cin>>position;
    /*cout<<" Enter the digit : ";
    cin>>digit;*/
    int totaldigits = log(number);
    int DigitAtPosition =  returnDigitAtPosition(position,totaldigits,number);
    cout<<DigitAtPosition;





}     

2 个答案:

答案 0 :(得分:1)

试试这个:

#include <iostream>
#include <string>
using namespace std;
int main(){
    int    position;
    string number;

    cout << " Enter the number :  " << endl;
    cin  >> number;
    cout << " Enter the position : " << endl;
    cin  >> position;
    cout << number[position] << endl;
}

接收数字作为字符串将接受该数字,无论其长度如何。

答案 1 :(得分:0)

更改两行,您的代码将起作用:

int positiondigit = number / pow(10, (totaldigits - position-1));

int totaldigits = log10(number)+1;