我尝试制作一个计算器,首先读取用户的输入,然后决定输入是二进制还是十进制,然后进行转换。 我几乎得到了一切,但无法想出标识符!这是我得到的代码:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
int a;
char num[100];
int number[100];
int decimal_binary (int n);
int binary_decimal (int n);
void errorcode(void);
bool bin, decim;
int main (){
bin (false);
decim (false);
printf ("enter a number: ");
gets (num);
a = strlen(num);
if (a > 8){
errorcode();
//printf("That is an invalid number!");
//exit(45);
}
for (int i=0; i < a; i++){
number[i] = num[i] -'0';
printf("%d", number[i]);
}
int decimal_binary(int n){
int rem, i=1, binary = 0;
while (n != 0)
{
rem =n%2;
n/=2;
binary+=rem *i;
i*=10;
}
return binary;
}
int binary_decimal(int n)
{
int decimal = 0, i=0, rem;
while (n!-0){
rem = n%10;
n/=10;
decimal += rem *pow(2,i);
++i;
}
return decimal;
}
}
void errorcode(void){
printf("That is an invalid number!");
exit(45);
}
最佳答案
没有办法仅仅通过分析输入的数字的字符来检测输入的数字是二进制还是十进制。但是,如果您研究随操作系统一起提供的 Microsoft Windows 计算器应用程序,“程序员”类型的计算器会从用户那里获取输入的数字是二进制还是十进制的输入,然后在其代码内部检查输入的数字是否为二进制或十进制。 number 是有效的二进制或十进制数。
简而言之,您的代码必须告诉用户指定输入的数字。
我建议您研究 Microsoft 计算器应用程序的“程序员”类型计算,以帮助您了解您想要实现的目标。
关于c - C语言中如何判断一个数是二进制还是十进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29003703/