关于#c++#的问题:digit(23523,7)=0*/#include <iostream>

大一,很菜,给代码气坏了
/*2.    设计函数int digit(int num, int k),返回整数num从右边开始的第k位数字的值。例如:
digit(4647,3)=6;digit(23523,7)=0
*/
#include
using namespace std;
int digit(int num, int k) {
    int a = 0; int res = 1;
    int num2 = 1; int num3 = 1;
    while (num!= 0) {
        num = num / 10;
        a++;
    }
    if (k > a) {
        res = 0;
    }
    else {
        num2 ==num2 - num / (10 ^ (k - 1));
        num3 ==num2 % 10;
        return num3;
    }
    
}
int main() {
    int n,m;
    cout << "请输入一个数字" << endl;
    cin >> n;
    cout << "请输入所取从右边开始的第几位数字的值" << endl;
    cin >> m;
    cout << "该数字a从右边开始的第" << m<< "位数字的值为";
    cout<<digit(n,m);
}


为什么总是输出1啊我晕,真的看不出问题,帮忙看一下啦谢谢

修改如下,供参考:

/*2.    设计函数int digit(int num, int k),返回整数num从右边开始的第k位数字的值。例如:
digit(4647,3)=6;digit(23523,7)=0
*/
#include <iostream>
using namespace std;
int digit(int num, int k) {
    int a = 0, res = 0;
    while (num != 0) {
        a++;
        if (a == k) {
            res = num % 10;
            break;
        }
        num = num / 10;
    }
    return res;
    //if (k > a) {
    //    res = 0;
    //}
    //else {
    //    num2 == num2 - num / (10 ^ (k - 1));
    //    num3 == num2 % 10;
    //    return num3;
    //}
}
int main() {
    int n, m;
    cout << "请输入一个数字" << endl;
    cin >> n;
    cout << "请输入所取从右边开始的第几位数字的值" << endl;
    cin >> m;
    cout << "该数字a从右边开始的第" << m << "位数字的值为";
    cout << digit(n, m);
}


1718行不对吧 等号写错了 改成下面这样
num2 =num2 - num / (10 ^ (k - 1));
        num3 =num2 % 10;

这不就是1-0么

img