1、声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。
扩展(*):不使用第三个变量如何交换?
用方法来实现:封装一个方法来做。
* 提示:方法有两个参数n1,n2,在方法中将n1与n2进行交换,使用ref。
static void Main(string[] args)
{
int n1 = 10, n2 = 20;
Console.WriteLine("交换之前:n1 = {0}, n2 = {1}", n1, n2);
//不使用方法来做
//n1 = n1 + n2;
//n2 = n1 - n2;
//n1 = n1 - n2;
Swap(ref n1, ref n2);
Console.WriteLine("交换之后:n1 = {0}, n2 = {1}", n1, n2);
Console.ReadKey();
}
static void Swap(ref int n1,ref int n2)
{
n1 = n1 + n2;
n2 = n1 - n2;
n1 = n1 - n2;
}
上面的Swap方法中,还可以使用另一种方式交换变量。
n1 = n1 - n2; // 10 - 20 得到结果:n1 = -10
n2 = n1 + n2; // 20 + (-10) 得到结果:n2 = 10
n1 = n2 - n1; // 10 - (-10) 得到结果:n1 = 20
2. 判断是否是质数(素数)
static bool IsPrime(int n)
{
if (n < 2)
{
return false;
}
else
{
for (int i = 2; i < n; i++)
{
if (n % i == 0)
{
return false;
}
}
return true;
}
}
3. 四舍五入
题目会要求,显示小数点后两位(四舍五入)
按照C语言,自写的算法。先将double类型的数据乘以1000后转换为int类型;再取出最后一位数字,若大于等于5,
则将给这个int类型的数据加上10;最后将int类型的数据乘以1.0转换为double类型后,除以1000,得到最终的结果。
static double Drop4Round5(double d)
{
int n = (int)(d * 1000);
int nLast = n % 10;
if (nLast >= 5)
{
n += 10;
}
n = n/10;
double db = (1.0 * n) / 100;
return db;
}
其实我们可以借助ToString方法更快地解决问题,ToString可以根据指定的格式将double类型的数值转换为等效字符串表示形式。如1.23456,保留后两位小数,四舍五入,得到字符串 “1.23”。最后调用Convert类的ToDouble方法即可。
avg = Convert.ToDouble(avg.ToString("0.00"));