C 检查给定的数字是否是二进制的
如前所述,对递归例程使用C 检查给定的数字是否是二进制的,c,algorithm,binary,C,Algorithm,Binary,如前所述,对递归例程使用main()并不是最好的主意,您还可以创建一个单独的函数来执行相同的操作,而不必进行讨厌的main()递归调用 Input a binary number: 122 Not a valid binary number. Try again Input a binary number: 101 valid binary number. Not a valid binary number. Try again Input a binary number: #包括 无效检查\
main()
并不是最好的主意,您还可以创建一个单独的函数来执行相同的操作,而不必进行讨厌的main()
递归调用
Input a binary number: 122
Not a valid binary number. Try again
Input a binary number: 101
valid binary number.
Not a valid binary number. Try again
Input a binary number:
#包括
无效检查\u二进制(int*num){
整数拷贝,温度=0;
printf(“输入二进制数:”);
scanf(“%d”,num);
拷贝=*num;
while(复制!=0){
临时=副本%10;
如果((温度==0)| |(温度==1)){
复制=复制/10;
如果(复制==0)
{
printf(“有效二进制数。\n”);
打破
}
}
否则{
printf(“不是有效的二进制数。请重试\n”);
检查二进制(num);
打破
}
}
}
int main(){
int num;//将保存变量以备将来使用
检查\u二进制(&num);
返回0;
}
正如前面所说的,对递归例程使用main()
并不是最好的主意,您也可以创建一个单独的函数来完成同样的事情,而不必进行讨厌的main()
递归调用
Input a binary number: 122
Not a valid binary number. Try again
Input a binary number: 101
valid binary number.
Not a valid binary number. Try again
Input a binary number:
#包括
无效检查\u二进制(int*num){
整数拷贝,温度=0;
printf(“输入二进制数:”);
scanf(“%d”,num);
拷贝=*num;
while(复制!=0){
临时=副本%10;
如果((温度==0)| |(温度==1)){
复制=复制/10;
如果(复制==0)
{
printf(“有效二进制数。\n”);
打破
}
}
否则{
printf(“不是有效的二进制数。请重试\n”);
检查二进制(num);
打破
}
}
}
int main(){
int num;//将保存变量以备将来使用
检查\u二进制(&num);
返回0;
}
开始:这里使用C++(调用<代码>主< <代码> > <代码>主代码>代码>是一个非常糟糕的想法。@ Yksisarvinen——C是可以的,不是C++的。@ ykSISARVIEN是C中允许的,但这并不意味着这是个好主意。我所看到的所有代码,要么是有趣的代码,要么是设计糟糕的代码。二进制、十进制、八进制、十六进制等都是将值表示为文本的方式。只有当您想要将文本转换为值或将值转换为文本时,您才关心文本表示所使用的基础是什么;这个值不关心。@ Sanjay Singh是“二进制数”的定义:这个数字的小数表示只包含数字“1”和“0”。首先,使用这里的缩略语(从<代码>主语< /COD> >中调用<代码>主< /代码>是一个非常坏的想法。@ Yksisarvinen - C是可以的,而不是C++。@但这并不意味着这是个好主意。我所看到的所有代码,要么是有趣的代码,要么是设计糟糕的代码。二进制、十进制、八进制、十六进制等都是将值表示为文本的方式。只有当您想要将文本转换为值或将值转换为文本时,您才关心文本表示所使用的基础是什么;值不重要。@Sanjay Singh是您对“二进制数”的定义:一个十进制表示形式仅包含数字“1”和“0”的数?
#include <stdio.h>
void check_binary(int *num) {
int copy, temp = 0;
printf("Input a binary number: ");
scanf("%d", num);
copy = *num;
while (copy != 0) {
temp = copy % 10;
if ((temp == 0) || (temp == 1)) {
copy = copy / 10;
if (copy == 0)
{
printf("valid binary number.\n");
break;
}
}
else {
printf("Not a valid binary number. Try again\n");
check_binary(num);
break;
}
}
}
int main() {
int num; //variable will be saved for future use
check_binary(&num);
return 0;
}