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

本文关键字:不起作用 程序 为什么 | 更新日期: 2023-09-27 18:33:52

我需要检查给定的数字是否可以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 转换为布尔值

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

感谢您对

我的帮助,这是我制作的corect代码,感谢您

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

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

if ((x % min) = 0)

你必须使用这样的==

if ((x % min) == 0)

塞康德的错误是:变量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";

听起来问题出在那条线上;

(x % min) = 0

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

这意味着在这种情况下,您将获得 2 个编译时错误;

  • 不能隐式将 int 转换为布尔值。(因为if语句需要布尔表达式)
  • 赋值的左侧必须是变量、属性或索引器。

强烈怀疑您只是想检查您的x除以min而没有任何提醒。如果是这样,您需要使用相等运算符而不是像赋值运算符这样的赋值运算符;

if ((x % min) == 0)

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