Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 检查给定的数字是否是二进制的_C_Algorithm_Binary - Fatal编程技术网

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;
}