如何用C语言来求正整数的百位数字
时间: 2024-09-25 18:20:26 浏览: 34
c代码-9.键盘输入一个三位数的正整数,其个位与百位相加若等于十位上的数字则输出"Yes",否则输出"No"。例如,输入"176",则输出"Yes"。输入"258",则输出"No"
在C语言中,你可以先将正整数转换为字符串,然后通过索引来获取每一位数字。这里是一个简单的例子,假设你想获取`num`变量的百位数字:
```c
#include <stdio.h>
#include <string.h>
// 函数来获取百位数字
int get_century_digit(int num) {
char str[10]; // 假设输入不超过999
sprintf(str, "%d", num); // 将数字转换为字符串
return str[1] - '0'; // 取出第二位字符并减去ASCII码'0'对应的值
}
int main() {
int num = 12345;
printf("The century digit of %d is %d\n", num, get_century_digit(num)); // 输出结果
return 0;
}
```
上面的代码首先用`sprintf()`函数将整数转换为字符串,然后通过`str[1]`获取第二位字符(从0开始计),最后通过ASCII码减法得到实际的数字。
注意:如果你的数字超过三位数,你需要额外的错误检查来确保不会越界。同时,对于负数,上述方法会无效,因为负数在C中通常不会以单独的负号表示,而是通过补码形式存储,所以需要特殊处理。
阅读全文