前天回顾了数列的几个问题,然后整理了36选7的彩票问题,结果还让我上去讲了一把我的思路,让我非常紧张,哈哈。
下面是课堂上老师留的两个联系题的手打版,分享给大家。
第一题,班里有三十个学生,其中四个人竞选班长,用一个小程序记录一下所有人的选票,并得出票数最高的人为班长。
这道题就属于非常平常的数列问题了,只要用一个长度为4的数列记录一下每个人的票数,然后输出最高的那个就OK了。
代码如下:
//首先设置一个长度为4的数列用来存储选票,初始值为零。
int[] arr = new int[4]{0,0,0,0};
//输入每一张选票:
for(int i =1;i<=30;i++)
{
console.writeline("请输入第{0}张选票:",i);
int cho = convert.toint32(console.readline());//这个地方是关键,因为选票的格式是0,1,2,3,这无疑说明了与对立的下标吻合,所以记录选票就非常简单了
if(cho!=0&&cho!=1&&cho!=2&&cho!=3)
{
console.writeline("对不起,您输入的选票有误,请重新输入。");//为了避免用户打错,所以写了一个if else语句。如果打错的话就重新输入选票。
i--;
}else
{
arr[cho]++;//比较关键的一步,因为输入的选片与下标吻合,所以只要用这一步就可以记录选票的结果。
}
}
//通过以上的语句已经得出了选票,下面用来找出最多的选票以及人选。分别用两个变量记录一下就OK。
int max = 0,maxNo=0;
for(int i =1;i<=arr.length;i++)
{
if(arr[i-1]=max)
{
max=arr[i-1];
maxNo=i-1;
}
}
console.writeline("得票最高的是第{0}位童鞋,票数为{1}票",maxNo,max);
至于第二题随机抽人的题目,就是对字符串数列的一个熟悉题而已,只需要创建一个随机变量就可以。
代码如下:
string[] names = new string[8]{"赵","钱","孙","李","周","吴","郑","王"};
random rand = new random();
console.writeline("抽到的是{0}!你的膝盖中了一箭!",names[rand.next(names.length)]);
这是星期五的两道题目。希望对大家有所帮助。