用C语言编写程序,设定一种五进制数值表示方式,它的每一数位可能是字母o.y.e.a.s其中的一个,分别代表数字0.1.2.3.4。例如,五进制数ya对应的十进制数为八,五进制为ysoae对应的十进制为1142。现在给定一个五进制数,输出它对应的十进制数,或给定一个十进制数,输出他的五进制数
时间: 2023-05-19 20:00:53 浏览: 112
以下是用C语言编写的程序,可以实现五进制数值的转换:
```c
#include <stdio.h>
#include <string.h>
int main() {
char digits[] = "oyeas";
char input[100];
int base = 5;
printf("请输入一个五进制数或十进制数:");
scanf("%s", input);
// 判断输入的是五进制数还是十进制数
if (strchr(input, '.') == NULL) {
// 十进制转五进制
int num = atoi(input);
char output[100];
int i = 0;
while (num > 0) {
output[i++] = digits[num % base];
num /= base;
}
// 反转字符串
for (int j = 0; j < i / 2; j++) {
char temp = output[j];
output[j] = output[i - j - 1];
output[i - j - 1] = temp;
}
printf("对应的五进制数为:%s\n", output);
} else {
// 五进制转十进制
int num = 0;
int len = strlen(input);
for (int i = 0; i < len; i++) {
int digit = strchr(digits, input[i]) - digits;
num = num * base + digit;
}
printf("对应的十进制数为:%d\n", num);
}
return 0;
}
```
如果输入的是一个五进制数,程序会将其转换为十进制数并输出;如果输入的是一个十进制数,程序会将其转换为五进制数并输出。
例如,输入五进制数"ysoae",程序会输出对应的十进制数"1142";输入十进制数"8",程序会输出对应的五进制数"ya"。
阅读全文