“按常数零划分”? Microsoft Visual C#

时间:2011-07-27 20:00:43

标签: c# c#-4.0 multiplication

为什么我收到错误消息“错误1划分为常数零25 17 ConsoleApplication3

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Higher, Lower... What is the highest possible number that you're thinking of?");
            string b = Console.ReadLine(); 
            int f = int.Parse(b);//   F = THE MAX #
            Random computerguess = new Random();
            int computerGuess = computerguess.Next(f);
            Console.WriteLine(computerGuess);
            Console.WriteLine("if your number is higher than the number displaid above, then press the '1' key so I guess higher. if your number is lower press the '0' (down) as in telling the comp to go down/lower");
            string I = Console.ReadLine();            
            int G = int.Parse(I);
            int H = 1/2;

            if (G == 0)
            {
                computerGuess = computerGuess * H;                    
                Console.WriteLine(computerGuess);
            }

            Console.Read();
        }
    }
}

4 个答案:

答案 0 :(得分:3)

您正在进行整数除法:

int H = 1/2;

总是零。而是使用小数:

decimal H = 0.5M;

然后将computerGuess强制转换为int:

..
computerGuess = (int)(computerGuess * H);

答案 1 :(得分:3)

由于

int H = 1/2;

将H设置为0:0.5向下舍入到最接近的整数。

答案 2 :(得分:2)

当我尝试编译代码时,我没有收到该错误消息。

错误消息可能有点误导。这是第25行,它没有按0分开:

int H = 1/2;

您正在划分整数,因此结果将为零。此计算由编译器完成,因此生成的代码等效于:

int H = 0;

您可能会收到警告,因为结果很可能不是预期的。

答案 3 :(得分:0)

关于这条线......

int H = 1/2;

您正尝试将浮点值0.5存储在Integer var。