用c++编写一个函数functionint nint k。该函数有2个参数n和k。函数的返回值为数n从右边开始数的第k个数字的值。例如n=1234k为2时函数返回3。若kn 的位数或k1时函数返回0。要求:1编写主函数并从键盘输入n、k的值进行测试。 2在主函数中能够多次输入n、k的值进行测试当输入的n值为0时停止测试。 3结果截图应能够全面印证程序的正确性。
#include <iostream>
#include <cmath>
using namespace std;
int function(int n, int k){
int digits = log10(n) + 1; // 计算n的位数
if(k > digits || k < 1){
return 0; // k不合法,返回0
}
return (int)(n / pow(10, k-1)) % 10; // 返回第k位上的数字
}
int main(){
int n, k;
while(true){
cout << "请输入n和k的值(以空格分隔,输入0结束):" << endl;
cin >> n;
if(n == 0){
break; // 输入0结束循环
}
cin >> k;
int result = function(n, k);
if(result == 0){
cout << "k不合法,请重新输入!" << endl;
} else {
cout << "n从右边开始数的第" << k << "个数字为:" << result << endl;
}
}
return 0;
}
原文地址: https://www.cveoy.top/t/topic/bV8r 著作权归作者所有。请勿转载和采集!