编程题目1:
统计出一个字符串每种字母出现的次数,并且打印出各字符对应的次数。注意:要求时间复杂度为O(n)。
举例如下:
输入字符串:“Hello!”
输出打印如下:
H:1
e:1
l:2
o:1
!:1
代码示例:利用ASCii吗,搞个128数组(或者搞个可见字符数组),每来一个对应加1。
扫描二维码关注公众号,回复:
12444845 查看本文章

编程题目2:
6个人摇骰子,各自的编号是1、2、3、4、5、6,没人初始金币是10,游戏规则如下:
①根据骰子的结果确认winner,比如:骰子结果是1,那么“一号选手”是winner,骰子结果是2,那么“2号选手”是winner;
②如果连续同一个人是winner,那么独居金额翻倍。
比如:第一次骰子结果是3,那么其他所有人需要给“三号选手”1元,加入第二轮骰子结果依然是3,那么每人需要给“三号选手”2元;连续三次骰子结果是3,则是4元;以此类推;
③如果非连续同一个人是winner,那么赌局金额重新回到1元,比如:骰子连续两轮结果是3,但是第三轮结果是4,那么第三轮赌局金额重新回到1元,
④如果金钱小于等于0元就出局。
要求:请编写代码模拟游戏过程,输出每一局每个人的剩余金额,并输出第一个人出局人的编号,可以使用rand()函数来输出随机整数。
代码示例:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int dat = 0; //本局骰子
int dat_before = -1; //上局骰子
int i;
int k=1; //起始赌金
int money[6]={10,10,10,10,10,10};
srand((unsigned)time(NULL)); //初始化随机数产生器
while(1)
{
printf("\n-----------------------------------\n");
for(i=0;i<=5;i++) //检查余额
{
if(money[i]<=0) //其中一位余额不足
{
printf("编号:%d,金额:%d\n",i+1,money[i]);
printf("游戏结束");
return -1; //游戏结束
}
}
dat=rand()%6+1; //产生随机数(1~6)
if(dat == dat_before) //比较骰子,赌金是否翻倍
{
k*=2;
printf("%d号连胜,赌金翻倍 !!\n",dat);
}
else
k =1;
printf("赌局金额 : %d\n",k);
printf("本局胜者 :%d\n",dat);
for(i=0;i<=5;i++) //支付罚金
{
if(i == (dat-1))
{
money[dat-1]=k*5+money[dat-1];//编号为随机数的人将钱收入囊中
printf("编号:%d,金额:%d (本局胜者)\n",dat,money[dat-1]);
}
else
{
money[i]-=k; //每一位输的给出罚金
printf("编号:%d,金额:%d\n",i+1,money[i]);
}
}
dat_before = dat; //记住上局的骰子
}
}
运行示例 :
-----------------------------------
赌局金额 : 1
本局胜者 :4
编号:1,金额:9
编号:2,金额:9
编号:3,金额:9
编号:4,金额:15 (本局胜者)
编号:5,金额:9
编号:6,金额:9
-----------------------------------
赌局金额 : 1
本局胜者 :6
编号:1,金额:8
编号:2,金额:8
编号:3,金额:8
编号:4,金额:14
编号:5,金额:8
编号:6,金额:14 (本局胜者)
-----------------------------------
赌局金额 : 1
本局胜者 :1
编号:1,金额:13 (本局胜者)
编号:2,金额:7
编号:3,金额:7
编号:4,金额:13
编号:5,金额:7
编号:6,金额:13
-----------------------------------
1号连胜,赌金翻倍 !!
赌局金额 : 2
本局胜者 :1
编号:1,金额:23 (本局胜者)
编号:2,金额:5
编号:3,金额:5
编号:4,金额:11
编号:5,金额:5
编号:6,金额:11
-----------------------------------
赌局金额 : 1
本局胜者 :4
编号:1,金额:22
编号:2,金额:4
编号:3,金额:4
编号:4,金额:16 (本局胜者)
编号:5,金额:4
编号:6,金额:10
-----------------------------------
赌局金额 : 1
本局胜者 :1
编号:1,金额:27 (本局胜者)
编号:2,金额:3
编号:3,金额:3
编号:4,金额:15
编号:5,金额:3
编号:6,金额:9
-----------------------------------
赌局金额 : 1
本局胜者 :5
编号:1,金额:26
编号:2,金额:2
编号:3,金额:2
编号:4,金额:14
编号:5,金额:8 (本局胜者)
编号:6,金额:8
-----------------------------------
赌局金额 : 1
本局胜者 :2
编号:1,金额:25
编号:2,金额:7 (本局胜者)
编号:3,金额:1
编号:4,金额:13
编号:5,金额:7
编号:6,金额:7
-----------------------------------
赌局金额 : 1
本局胜者 :4
编号:1,金额:24
编号:2,金额:6
编号:3,金额:0
编号:4,金额:18 (本局胜者)
编号:5,金额:6
编号:6,金额:6
-----------------------------------
编号:3,金额:0
游戏结束
Process returned -1 (0xFFFFFFFF) execution time : 0.124 s
Press any key to continue.