为什么c#中的这个程序不起作用?

时间:2014-12-10 11:47:18

标签: c#

我需要检查给定的数字x是否可以用最小的数字整除:

int x, a, b, c,min;

x = Convert.ToInt32(tbx.Text);
a = x / 100;
b = (x / 10) % 10;
c = x % 10;
a = min;

if (b < min) 
    b = min;

if (c < min) 
    c = min;

 if ((x % min) = 0)
      lbl_solution.Text = "number is divisible";
 else
      lbl_solution.Text = "number is not divisible";

如何解决此错误?

  

无法将int隐式转换为bool

3 个答案:

答案 0 :(得分:1)

感谢您帮助我,这是我感谢您的正确代码

        int x, a, b, c, min;
        x = Convert.ToInt32(tbx.Text);
        a = x / 100;
        b = (x / 10) % 10;
        c = x % 10;
        min=a;
        if (b < min) 
        b = min;
        if (c < min) 
        c = min;
        if ((x % min) == 0)
           lbl_solution.Text="number is divisible";
        else
            lbl_solution.Text="number is not divisible";

答案 1 :(得分:0)

你的第一个错误在于这一行:

if ((x % min) = 0)

你必须像这样使用==

if ((x % min) == 0)

sekond的错误是:变量min未被人工化......

int x, a, b, c;
int min = 2;

x = Convert.ToInt32(tbx.Text);
a = x / 100;
b = (x / 10) % 10;
c = x % 10;
a = min;

if (b < min) 
    b = min;

if (c < min) 
    c = min;

if ((x % min) == 0)
    lbl_solution.Text = "number is divisible";
else
    lbl_solution.Text = "number is not divisible";

答案 2 :(得分:-1)

听起来问题就是那条线;

(x % min) = 0

x % min返回int值,而不是变量。例如,它将是5 = 0;

这意味着在这种情况下你会得到2个编译时错误;

  • 无法将int隐式转换为bool。 (因为if语句需要boolean expression
  • 作业的左侧必须是变量,属性或索引器。

强烈怀疑您只想检查x除以min而没有任何提醒。如果是这样,您需要使用equality operator而不是assignment operator之类的;

if ((x % min) == 0)

C#编译器不允许您使用未初始化的变量。在您的情况下,您尝试使用amin变量而不初始化它们。