如何从C中的数字中获取每个数字?

时间:2017-05-15 04:50:25

标签: c function while-loop

我有这些变量:

 int dividend;
 int divider;

我有这个功能:

Divisibility7 (int num);

这两个变量将在main函数中,并且将要求用户输入被除数和除法器,但是如果用户输入除法器7,则将调用上面的函数。

问题是我必须遵循特定的标准才能做到这一点。因此,我们假设用户将使用红利7203输入。发生这种情况:

  

予。 获取数字的最后一位数

     
    

最后一位数:3

  
     

二。 将最后一位数乘以2

     
    

3 x 2 = 6

  
     

三。 获取初始数字的值,没有最后一位数。

     
    

720

  
     

四。 从乘法结果中减去没有最后一位的初始值。

     
    

fabs(720 - 6)= 714

  
     

重复此过程,直到结果值小于或等于70

     

六。 将结果与目录进行比较(0,7,14,21,28,35,42,49,54,63,70)   确定该数字是否可以被7整除

代码:

int res;
int x; 
int y;

int Divisibility7(int num) {

    int res;
int x;
int y;
int z;

    while(num > 70) {

    x = num % 10; // get the last digit from the number
    y = x * 2; // multiply the last digit by 2;
    z = num/10; // get the first digits from the number
    fabs(z - y); // subtract the first digits with the last digits;

    }

}

在一段时间内,最后的晶圆厂(zy)返回我想要的东西,成为减去最后一个数字的第一个数字,但问题是,在那里停止,我必须做一些事情来做到这一点到70岁或以下。

PS:我需要检查迭代中的最终数字,它是一个乘以7的数字,我该怎么做?而我无法使用mod。

2 个答案:

答案 0 :(得分:3)

你没有在while循环中更改num。你也不会返回值。希望以下代码适合您。

int Divisibility7(int num) {

    int res,x,y,z;
    while(num > 70) {

    x = num % 10; // get the last digit from the number
    y = x * 2; // multiply the last digit by 2;
    z = num/10; // get the first digits from the number
    num = abs(z - y); // subtract the first digits with the last digits;

    }

 if(num == 0 || num == 7 || num == 14 || num == 21 || num == 28 || num == 35 || num == 42 || num == 49 || num == 54 || num == 63 || num == 70) {
    return 1;
}
else { 
    return 0;
}

}

答案 1 :(得分:2)

不确定,但我认为这就是你要做的事情:

int main (void)
{
    int number, lastDigitMultiplied;
    scanf("%d", &number);
    while(number > 70){
        //get the last digit and multiply it by 2
        lastDigitMultiplied = (number % 10) * 2;
        //subtract the initial value without the last digit from the multiplication result.
        number = number / 10 - lastDigitMultiplied;
    }
    if(abs(number) % 7 == 0)
        printf("The result is %d and it is a multiple of 7", number);
    else
        printf("The result is %d and it is not a multiple of 7", number);
    return 0;
}