2
Answers

help - out of bound error

mike Hanin

mike Hanin

16y
2.1k
1

hi, I wrote a program to input senteces, to analyze them and to give me the numer of words in the sentece, the program is running and compiling, but after I put in the sentence and get the number of words from the program I also get "out of bound" and a general error, can anybody take a look,

 

thanks in advance Mike.

using System;

using System.Collections.Generic;

using System.Text;

namespace sentence

{

class WordCount

{

static void Main(string[] args)

{

string sentence;

string[] wordList;

string word;

int[] sizeCount = new int[6];

int i;

int characterCount = 0;

string runAgain;

bool continueRunning = true;

Console.WriteLine("The program will analyze sentences you type in.");

while (continueRunning == true)

{

for (i = 0; i <= 5; i++)

{

sizeCount[i] = 0;

}

Console.WriteLine();

Console.Write("Please enter a sentence: ");

sentence = Console.ReadLine();

while (sentence.Length == 0)

{

Console.Write("You must enter some text. Please try again: ");

sentence = Console.ReadLine();

}

Console.WriteLine();

wordList = sentence.Split(new char[] { ' ' });

Console.WriteLine("The number of words in the sentence is " + wordList.Length);

for (i = 0; i <= wordList.Length; i++)

{

word = wordList[i].Trim();

if (word.Length > 0)

{

if (word.Length > 5)

{

sizeCount[0]++;

}

else

{

sizeCount[word.Length]++;

}

characterCount = characterCount + word.Length;

}

}

Console.WriteLine("The number of words with 1 letter is " + sizeCount[1]);

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

{

Console.WriteLine("The number of words with " + i + " letters is " + sizeCount[i]);

}

Console.WriteLine("The number of words with 6 or more letters is " + sizeCount[0]);

Console.WriteLine("The number of non-white space characters is " + characterCount);

Console.WriteLine();

Console.Write("Do you want to analyse another sentence (Y/N)? ");

runAgain = Console.ReadLine().ToUpper();

while (runAgain != "Y" && runAgain != "N")

{

Console.Write("Please enter Y or N: ");

runAgain = Console.ReadLine().ToUpper();

}

if (runAgain == "Y")

{

continueRunning = false;

}

}

}

}

}

Answers (2)