2013-10-28 189 views
-4

我正在写我的第一个C#程序(FizzBu​​zz),它必须显示9和13的整除以及打印素数。我认为我已经将大部分代码分类出来了,但无法解决我的11'无效标记'和'标识符预期'错误。任何意见,将不胜感激。 C#无效语法错误

using System; using System.Collections.Generic; using System.Linq; using System.Text; using ConsoleApplication10; namespace Fizzbuzz { class Program { int TotalFizz; int TotalBuzz; int TotalFizzBuzz; int IsPrime; public void BeginTesting(); // start testing //Step 1 : Print number 1 to 100 for (int i = 1; i <=; i++) { string results = ""; // Step 2 :- Divisable by 9 print Fizz public bool IsFizz(i % 9 == 0) results = "Fizz"; public int TotalFizz (int input); // Step 3 :- Divisable by 13 print Buzz public bool IsBuzz(i % 13 == 0) results = "Buzz"; public int TotalBuzz(int input); // Step 4 :- Divisable by 9 and 13 print FizzBuzz public bool IsFizzBuzz(i % 9 == 0, i % 13 == 0) results = "FizzBuzz"; public int TotalFizzBuzz(int input); // Step 5 :- Print the number as it is if not divisable by 9 or 13 Console.WriteLine("TotalFizzBuzz")CurrentValue.ToString; public bool IsPrime(int input); Console.WriteLine results; } }
+2

首先,你为什么要在一个函数内部创建'public'变量?这对你没有任何好处。 – gunr2171

+0

而你的函数没有启动'{'。将'BeginTesting()'后面的';'替换为'{',然后在末尾做一个。但似乎你需要拿起一本关于c#的书,并通读前几章。 – gunr2171

回答

1

为了给你一个基本的开始,下面是你的函数的一个版本,它主要做的是评论表明它应该。

public void BeginTesting() // start testing 
    { 
     //Step 1 : Print number 1 to 100 
     for (int i = 1; i <= 100; i++) 
     { 
      var results = string.Empty; 
      // Step 2 :- Divisable by 9 print Fizz 
      if (i % 9 == 0) 
      { 
       results = "Fizz"; 
       TotalFizz++; 
      } 

      // Step 3 :- Divisable by 13 print Buzz 
      if (i % 13 == 0) 
      { 
       results = "Buzz"; 
       TotalBuzz++; 
      } 

      // Step 4 :- Divisable by 9 and 13 print FizzBuzz 
      if (i % 9 == 0 && i % 13 == 0) 
      { 
       results = "FizzBuzz"; 
       TotalFizzBuzz++; 
      } 

      if (string.IsNullOrEmpty(results)) 
      { 
       // Step 5 :- Print the number as it is if not divisable by 9 or 13 
       Console.WriteLine(i.ToString()); 
      } 

      Console.WriteLine(results); 
     } 
    } 

你的代码有很多问题。我希望这至少会给你一些指示。

+0

非常感谢,看到错误数量下降让我的夜晚 – RebukeJoy

0

这是错误的代码

for (int i = 1; i <=; i++) 

我< = ????

+0

这不是他的代码唯一的错误。 – gunr2171

+0

雅我甚至没有看到丢失的括号。 – deathismyfriend

0

试试这个(只是编译它,看起来应该这样做)。我已经抽象了你的数字检查,所以你不必再一次又一次地检查同样的余数。

看起来像你过于复杂的东西......但我一直在那里,也做到了。 :)

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

namespace test 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      BeginTesting(); 
      Console.ReadLine(); 
     } 

     private static void BeginTesting() 
     { 
      //Step 1 : Print number 1 to 100 
      for (int i = 1; i <= 100; i++) 
      { 

       // Step 2 :- Divisable by 9 print Fizz 
       if (isDivisibleBy(i, 9)) 
       { 
        Console.WriteLine("Fizz"); 
       } 

       // Step 3 :- Divisable by 13 print Buzz 
       else if (isDivisibleBy(i, 13)) 
       { 
        Console.WriteLine("Buzz"); 
       } 

       // Step 4 :- Divisable by 9 and 13 print FizzBuzz 
       else if (isDivisibleBy(i, 9) && isDivisibleBy(i, 13)) 
       { 
        Console.WriteLine("FizzBuzz"); 
       } 

       // Step 5 :- Print the number as it is if not divisable by 9 or 13 
       else 
       { 
        Console.WriteLine(i); 
       } 

      } 
     } 



     //Create a method to test whether it’s divisible 
     private static bool isDivisibleBy(int theNumber, int theDivisor) 
     { 
      bool isDivisible = false; 

      if ((theNumber % theDivisor) == 0) 
      { 
       isDivisible = true; 
      } 

      return isDivisible; 
     } 


    } 
} 

编辑:我编译后提交,只是为了确保。清理最后的方法。

+1

提示:请在您提出答案之前编译并格式化您的代码。 OP的问题是代码不能编译。 – gunr2171

+1

好点,@ gunr2171。对不起,我有点匆忙。编译并测试它,并在其上进行一些小的调整。它现在有它的魔力。 欣赏这里诚实的地方。 :) – napo