我尝试制作一个计算器,首先从用户读取输入,然后确定输入是二进制还是十进制,然后转换它。 我得到了几乎所有东西,但不能提出标识符!这是我得到的代码:
#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);
}
答案 0 :(得分:3)
通过分析输入数字的字符,无法检测输入的数字是二进制还是十进制。但是,如果您研究随操作系统一起提供的Microsoft Windows计算器应用程序,“程序员”类型的计算器会接受输入,无论输入的数字是用户的二进制还是十进制,然后在其代码内部检查是否输入number是有效的二进制或十进制数。
简而言之,您的代码必须告诉用户指定输入的号码。
我建议学习Microsoft计算器应用程序的“程序员”类型calc,以帮助您了解您想要实现的目标。