c语言求一个大于10的n位整数的后n-1位的数,并作为函 数值返回。
时间: 2023-12-24 11:17:54 浏览: 25
可以先将这个大于10的n位整数转换成字符串,然后取字符串的后n-1位作为结果返回。函数代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* get_last_n(char* num, int n) {
if (strlen(num) <= n) {
// 如果字符串长度小于等于n,则返回空字符串
return "";
}
// 返回字符串后n-1位
return num + strlen(num) - n + 1;
}
int main() {
int n = 0;
printf("请输入一个大于10的n位整数的n值:");
scanf("%d", &n);
getchar(); // 消耗掉输入缓冲区中的换行符
char* num = (char*)malloc((n + 1) * sizeof(char));
printf("请输入一个大于10的%d位整数:", n);
fgets(num, n + 1, stdin);
// 去掉输入字符串中的换行符
if (num[strlen(num) - 1] == '\n') {
num[strlen(num) - 1] = '\0';
}
char* last_n = get_last_n(num, n - 1);
printf("这个%d位整数的后%d位数为:%s\n", n, n - 1, last_n);
free(num);
return 0;
}
```
函数`get_last_n`的参数`num`是一个表示大于10的n位整数的字符串,参数`n`是要求的后n-1位数的位数。函数内部使用`strlen`函数获取字符串的长度,如果字符串长度小于等于n,则返回空字符串;否则返回字符串`num`的后n-1位。主函数中先读入一个大于10的n位整数的n值,然后读入这个n位整数的字符串表示,去掉字符串中的换行符后调用`get_last_n`函数获取后n-1位数,最后输出结果。