编写函数int digit(int n,int k),函数返回n中从右边开始的第k位数字的值,如:digit(231456,3)=4;digit(1456,5=0
时间: 2024-05-26 12:11:34 浏览: 127
好的,我知道了。您的第一个问题是如下:编写函数int digit(int n,int k),函数返回n中从右边开始的第k位数字的值,如:digit(231456,3)=4;digit(1456,5=0。对吗?那么我的回答是:
int digit(int n, int k) {
if(k <= 0) {
return -1;
}
int count = 0;
while(n > 0) {
count++;
if(count == k) {
return n%10;
}
n /= 10;
}
return 0;
}
这个函数的作用是返回一个整数n中从右边开始的第k位数字的值。如果k<=0,则返回-1。如果n的位数少于k位,则返回0。
相关问题
编写一个函数 int digit( int n , int k ),返回 n 的从右向左的第 k 位的数字。
以下是C语言实现的函数int digit(int n, int k):
```c
int digit(int n, int k){
int i, a, count = 0, copy_n;
copy_n = n;
while(copy_n ! 0){
copy_n /= 10;
++;
}
if(k > count){
return -1;
}
else{
for(i =1; i <= k; i++){
a = n % 10;
n /= 10;
}
return a;
}
}
```
该函数的实现思路是先计算n的位数,如果k大于n的位数,则返回-1,否则从右向左遍历n的每一位,找到第k位的数字并返回。例如,digit(256,1)返回6,digit(256,3)返回2。
用C语言编写定义函数digit(n,k),其功能是返回一个整数n从右边开始数第k个数字的值。例如:digit(15327,4)digit(289,5)
以下是用C语言编写的digit函数:
```c
#include <stdio.h>
int digit(int n, int k) {
int i;
for (i = 1; i < k; i++) {
n /= 10;
}
return n % 10;
}
int main() {
printf("%d\n", digit(15327, 4)); // 输出 3
printf("%d\n", digit(289, 5)); // 输出 0
return 0;
}
```
在该函数中,我们使用for循环从右边开始数第k个数字,我们可以通过将n除以10来实现从右往左数的操作。当循环结束时,我们使用n % 10来获取第k个数字的值。在主函数中,我们调用digit函数来测试函数的正确性。
阅读全文