如果语句忽略条件

时间:2018-11-20 16:35:47

标签: c if-statement

#include <stdio.h>
#include<math.h>

int binary_to_decimal(int n){
    int ostatok, i=0, pom, decimal=0;
    pom=n;
    while(pom)
    {
        ostatok=pom%10;
        decimal+=ostatok*pow(2,i);
        pom/=10;
        i++;
    }
    return decimal;
}

int main()
{
    int m, n, i, max=0, number;
    scanf(" %d %d", &n, &m);
    int array[n];

    for(i=0; i<n ;i++){
        scanf(" %d", &number);
        binary_to_decimal(number);
        if(number>m) // this if statement doesn't seem to be doing it's job
            array[i]=number;
        if(array[i]>max)
            max=array[i];
    }

    for(i=0; i<n ;i++)
    {
        printf(" %d %d\n", array[i], binary_to_decimal(array[i]));
    }
    printf("Max %d %d", max,  binary_to_decimal(max));
    return 0;
}

程序是:输入两个intm值。 n用作比较值,而m是用户在循环中输入的二进制数。如果输入的数字大于数字n,则以二进制然后十进制的形式打印出输入数字的值。最后,以二进制和十进制打印出具有最大值的数字。 我的问题是m,我在这里比较if和输入的数字,我似乎找不到问题。

1 个答案:

答案 0 :(得分:3)

调用binary_to_decimal(number)不会更改您的号码。 尝试类似的东西:

number = binary_to_decimal(number);