C# 第二次練習
// 方法
//1.方法名稱:獨立完成功能的一個多個單詞縮寫,能見名知意即可,比如求單詞平均長度:AverageWordLength
//2.方法引數:獨立完成事情的條件,求單詞平均長度,那麼條件就是需要給單詞,即:string str
//3.返回值:做事情的結果:求平均長度,平均長度應該是小數,所以返回值型別為double
//4.有返回值的方法,在書寫時,首先在方法中宣告一個和返回值型別一樣的變數並賦初值,如:double avgLength = 0,然後返回這個變數:return avgLength,然後功能實現寫在這兩句程式碼中間
//1.統計一段英文短文中單詞的平均長度
/*
string file = textBox1.Text;
double avg = AverageWordLength(file);
textBox2.Text = "單詞的平均長度" + avg;
*/
//2.判斷一個數是否能被3整除但不能被7整除
//textBox1.Text = "1-100之間能被3整除但不能被7整除的數有:";
//for (int i = 100; i <= 200; i++)
//{
// if (IsDivide(i))
// {
// textBox2.Text += i + ",";
// }
//}
//3.輸入一個字串,統計字串中英文字母和數字字元的個數並輸出
//Word(textBox1.Text);
//4.對正整數m求和,其中求和公式為s= 1/2+1/3+…+1/m,方法返回s的值。
//textBox2.Text = "求和為:"+Sum(int.Parse(textBox1.Text));
//5.將一個字串中所有英文字元後加一個$字元,並返回處理後的字串。
//textBox2.Text = "處理後的字串:" +AddDollar(textBox1.Text);
//6.求s=1/a+1/aa+1/aaa+1/aaaa+1/aaaaa的值
//textBox2.Text = "計算後:" +Sum1(int.Parse(textBox1.Text));
//7.判斷一個數是否是完數,返回值為布林型別。一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6=1+2+3。
//textBox2.Text = "是否是完數:" + IsPerfect(int.Parse(textBox1.Text));
//8.求分數序列:2/1,1/3,3/4,4/7,7/11,11/18...的前10項之和,並返回。
//textBox2.Text = "前10項之和:" + Sum2();
//9.求1+1/2!+1/3!+...+1/n!的和,並將和作為返回值返回
//textBox2.Text = "1+1/2!+1/3!+...+1/n!的和:" + Sum3(int.Parse(textBox1.Text));
//10.在大獎賽中,有10個評委為參賽的選手打分,分數為1~100分。選手最後得分為:去掉一個最高分和一個最低分後其餘8個分數的平均
//編寫一個方法,輸入10個選手的分數,返回最後得分。
string str = textBox1.Text;
int[] s =str.Split(',').Select(int.Parse).ToArray();
double avg = LastScore(s);
textBox2.Text = "最後得分:" + avg;
}
//1.統計一段英文短文中單詞的平均長度,單詞之間由若干個空格隔開。
public double AverageWordLength(string str)
{//I am a student
double avgLength = 0;
string[] words = str.Split(' ');
double sum = 0;
for (int i = 0; i < words.Length; i++)
{
sum += words[i].Length;
}
avgLength = sum / words.Length;
return avgLength;
}
//2.判斷一個數是否能被3整除但不能被7整除
bool IsDivide(int num)
{
bool flag = false;
if (num % 3 == 0 && num % 7 != 0)
{
flag = true;
}
return flag;
}
//3.輸入一個字串,統計字串中英文字母和數字字元的個數並輸出。要求編寫應用程式,來檢驗方法的正確性。
public void Word(string str)
{
int zimu = 0;
int shuzi = 0;
int qita = 0;
foreach (char s in str)
{
if ((s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z'))
{
zimu++;
}
else if (s >= '0' && s <= '9')
{
shuzi++;
}
else
{
qita++;
}
}
textBox2.Text = "英文字元個數:" + zimu + "數字字元個數:" + zimu + "其他字元個數:" + qita;
}
//4.對正整數m求和,其中求和公式為s= 1/2+1/3+…+1/m,方法返回s的值。
public double Sum(int m)
{
double s = 0;
for (int i = 1; i <= m; i++)
{
s += 1.0 / i;
}
return s;
}
//5.寫一個方法,將一個字串中所有英文字元後加一個$字元,並返回處理後的字串。
//例如輸入:A1B23CD45,則方法返回值為:A$1B$23C$D$45,要求編寫應用程式,來檢驗方法的正確性。
public string AddDollar(string str)
{
string result = "";
foreach (char s in str)
{
if ((s >= 'a' && s <= 'z') || (s >= 'A' && s <= 'Z'))
{
result += s + "$";
}
else
{
result += s;
}
}
return result;
}
//6.寫一個方法,求s=1/a+1/aa+1/aaa+1/aaaa+1/aaaaa的值,其中a是使用者定義的數字。
//例如1/2+1/22+1/222+1/2222+1/22222(此時共有5個數相加),返回值為和s。
public double Sum1(int a)
{
double s = 0;
for (int i = 1; i <= a; i++)
{
s += 1.0 / (a*xunhuan(i));
}
return s;
}
public int xunhuan(int n)
{
int a = 0;
string s = 0.ToString();
for (int i = 1; i <= n; i++)
{
s += 1;
}
a=int.Parse(s);
return a;
}
//7.判斷一個數是否是完數,返回值為布林型別。一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6=1+2+3。
bool IsPerfect(int num)
{
int sum = 0;
for (int i = 1; i <= num / 2; i++)
{
if (num % i == 0)
{
sum += i;
}
}
if (sum == num)
return true;
else
return false;
}
//8.寫一個方法,求分數序列:2/1,1/3,3/4,4/7,7/11,11/18...的前10項之和,並返回。
public double Sum2()
{
double sum = 0;
double a = 1;
double b = 2;
double temp = 0;
for (int i = 0; i < 10; i++)
{
sum += a / b;
temp = b;
b = a + b;
a = temp;
}
return sum;
}
//9.求1+1/2!+1/3!+...+1/n!的和,並將和作為返回值返回
public double Sum3(int n)
{
double sum = 0;
for (int i = 1; i <= n; i++)
{
sum += 1.0 / Factorial(i);
}
return sum;
}
public int Factorial(int n)
{
int result = 1;
for (int i = 1; i <= n; i++)
{
result *= i;
}
return result;
}
//10.在大獎賽中,有10個評委為參賽的選手打分,分數為1~100分。選手最後得分為:去掉一個最高分和一個最低分後其餘8個分數的平均
//編寫一個方法,輸入10個選手的分數,返回最後得分。
public double LastScore(int[] scores)
{
Array.Sort(scores);
int max = scores[9];
int min = scores[0];
int sum = 0;
for (int i = 1; i < 9; i++)
{
sum += scores[i];
}
double avg = (double)sum / 8;
return avg;
}
刪除線
引用
*** 分割線 ---