我正在研究c#制作程序,用于检查元音,辅音,字符,单词和句子数量。 。我的计划工作得很好,但我的 问题是改变我应用它们的方法的位置。
这是程序 方法字符我使用辅音
的方法单词(whick基本上计算空格)相同问题是我需要将主要方法应用于我创建它的顺序“ 单词&gt;句子&gt;元音&gt;字符&gt; COnsonants < / STRONG>” 如果我订购了订单,我会得到错误的答案
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Task_Raza_Class
{
class Program
{
static void Main(string[] args)
{
string state;
Console.WriteLine("Enter an Statement / Sentance \nPress Enter to Continue..");
state = Console.ReadLine();
raza task = new raza();
// Words>Sentances>Vowels>Characters>COnsonents
Console.WriteLine("Words"+task.words(state));
Console.WriteLine("No of Sentances"+task.tances(state));
Console.WriteLine("Vowels"+task.vowels(state));
Console.WriteLine("Characters"+task.characters(state));
Console.WriteLine("Consonents"+task.consonents(state));
Console.ReadKey();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Task_Raza_Class
{
class raza
{
public int cw , cv , cc , cp , cchar ;
public raza()
{
cw = 1; cv = cc = cp = cchar = 0;
}
public int words(string state)
{
char[] s_arr = new char[200];
s_arr = state.ToCharArray();
for (int i = 0; i < s_arr.Length; i++)
{
if(s_arr[i]==' ')
{
cw++;
}
}
return (cw);
}
public int tances(string state)
{
char[] s_arr = new char[200];
s_arr = state.ToCharArray();
for (int i = 0; i < s_arr.Length; i++)
{
if (s_arr[i] == '.')
{
cp++;
}
}
return (cp);
}
public int vowels(string state)
{
char[] s_arr = new char[200];
s_arr = state.ToCharArray();
for (int i = 0; i < s_arr.Length; i++)
{
if (s_arr[i] == 'a' || s_arr[i] == 'A' || s_arr[i] == 'e' || s_arr[i] == 'E' || s_arr[i] == 'i' || s_arr[i] == 'I' || s_arr[i] == 'o' || s_arr[i] == 'O' || s_arr[i] == 'u' || s_arr[i] == 'U')
{
cv++;
}
}
return (cv);
}
public int characters(string state)
{
char[] s_arr = new char[200];
s_arr = state.ToCharArray();
cchar = s_arr.Lenght - words(state)-1
return (cchar);
}
public int consonents(string state)
{
char[] s_arr = new char[200];
s_arr = state.ToCharArray();
cc = characters(state)-vowels(state);
return (cc);
}
}
}
答案 0 :(得分:1)
问题是cchar
和cv
是成员字段,其值在调用之间保持不变。由于consonents
调用了characters
和vowels
,因此这两个函数会被调用两次,而第二次调用时会有第一次调用剩余的值。您的raza
类中不需要任何成员字段 - 它们都可以是局部变量。或者,您可以设计raza
以接受构造函数中的state
参数,然后调用characters
和consonents
并更改vowels
以重用{{1}中的值1}}和cchar
。
(BTW正确的英文拼写是“辅音”和“句子”)