using System;
using System.Collections.Generic;
using System.Text;namespace Test1_19
{
class Program
{
static void Main(string[] args)
{
Int32 amount, cost, level;
Console.WriteLine("请输入购买教科书的数量:\n");
amount = Int32.Parse(Console.ReadLine());
cost = amount * 25;
level = Math.Log10(amount);
switch(level)
{
case (level>1&&level<10):
cost *=0.9;
break;
case (level>100&&level<1000):
cost*=0.85;
break;
case (level>1000):
cost*=0.8;
break;
default :cost=cost;
break;
}
Console.WriteLine("费用:\n,{0}",cost);
}
}
}
using System.Collections.Generic;
using System.Text;namespace Test1_19
{
class Program
{
static void Main(string[] args)
{
Int32 amount, cost, level;
Console.WriteLine("请输入购买教科书的数量:\n");
amount = Int32.Parse(Console.ReadLine());
cost = amount * 25;
level = Math.Log10(amount);
switch(level)
{
case (level>1&&level<10):
cost *=0.9;
break;
case (level>100&&level<1000):
cost*=0.85;
break;
case (level>1000):
cost*=0.8;
break;
default :cost=cost;
break;
}
Console.WriteLine("费用:\n,{0}",cost);
}
}
}
if (level > 1 && level < 10) cost *= 0.9;
else if (level > 100 && level < 1000) cost *= 0.85;
else if (level > 1000) cost*=0.8;
if(level>1 && level <10)
cost *= 0.9;
else if (level >100 && level <1000)
cost *= 0.85;
else if(level > 1000)
cost *= 0.8;
其实像这种的用一个XML文件存储level范围和对应的cost会比较好
但是这个是我做的一道书上的题目,要求是 根据level的值使用switch语句进行编程
还有就是
level = Math.Log10(amount);
这句话是错的,提示说是无法进行转换成double类型的!
level = (int)Math.Log10(amount);
switch(level)
{
case 0:
break;
case 1:
cost *= 0.9;
break;
case 2:
cost *= 0.85;
break;
default:
cost *= 0.8;
break;
}
level = (int)Math.Log10(amount);
switch(level)
{
case 0: // 表示: 1 ≤ amount < 10
break;
case 1: // 表示: 10 ≤ amount < 100
cost *= 0.9;
break;
case 2: // 表示: 100 ≤ amount < 1000
cost *= 0.85;
break;
default: // 表示: 其他情形,也就是 amount ≥ 1000 或 amount < 1
cost *= 0.8;
break;
}
重点说一下,这个不是作业贴是我自学的无语!!!
我把题目大概写一下吧
就是 书的单价为25元,超过10本打9折,超过100本打85折,超过1000本打8折
取amount以10为底的对数,转换为整数并赋值给变量level;
根据level的值,使用switch分支语句,对原始费用进行折价。
输出cost的值。
大概就是这样了---------------------------------恩,这个可以,根据书上给的测试数据也通过了,但是我不明白为什么超过100,1000本的时候,怎么得知level的等级那?这里不清楚,谢谢提示~!