PTA——洗牌
2024-09-04 00:26:38
程序:
#include<stdio.h>
int main() {
int i,n,*result;
scanf("%d",&n);
int shuffle[],card1[],card2[];
result = n%==?card1:card2;
for(i=; i<; i++) {
scanf("%d",&shuffle[i]);
}
//初始化
for(i=; i<; i++) {
card1[i] = i;
}
//洗牌
/*
while(n) {
if(n%2==1) {
for(i=0; i<54; i++) {
card2[shuffle[i]-1] = card1[i];
}
} else {
for(i=0; i<54; i++) {
card1[shuffle[i]-1] = card2[i];
}
}
n--;
}
*/
while(n){
for(i=; i<; i++){
card2[shuffle[i]-] = card1[i];
}
n--;
if(n==){
break;
}
for(i=; i<; i++){
card1[shuffle[i]-] = card2[i];
}
n--;
} for(i=; i<; i++) {
if(result[i]/==) {
printf("%c%d",'S',result[i]%+);
} else if(result[i]/==) {
printf("%c%d",'H',result[i]%+);
} else if(result[i]/==) {
printf("%c%d",'C',result[i]%+);
} else if(result[i]/==) {
printf("%c%d",'D',result[i]%+);
} else {
printf("%c%d",'J',result[i]%+);
}
if(i<) {
printf(" ");
}
}
}
分析:
此题用到的知识点有
1、数组:不定义字符数组,而是在输出时做判断,提高了程序效率
2、指针:最终输出的结果与洗牌次数有关,先定义一个指针,后期直接访问结果数组即可,避免了判断操作
3、三元运算符:节省代码量
4、循环语句:两个数组交替存储每次洗牌结果(注释中的程序是我一开始写的,有逻辑错误),不论最后洗多少次,都是1-2-1-2交替
最新文章
- jquery属性选择器
- 关于Beam Search
- localStorage和sessionStorage的区别
- C语言入门(13)——循环
- java对象复制
- OpenCV配置使用版
- 优化之zencart第一时间修改原始内容
- Flutter的scope_model使用mixin语法报错
- hibernate框架学习第六天:QBC、分页查询、投影、数据加载策略、二级缓存
- 通过DOS命令批量重命名文件
- iOS变量定义在 .h 还是 .m 中
- 【转】【VS Code】配置文件Launch及快捷键
- 图片按钮(imageButton)
- JS-JavaScript类库整理 [更新中...]
- restful知识点之三restframework认证-->;权限-->;频率
- C++高级编程2. 静态动态链接库
- es6 import笔记
- elasticsearch批量索引数据示例
- xp_sp3_pro_简中_x86_cd_vl_x14-74070
- 怎样在WIN7系统下安装IIS和配置ASP
热门文章
- bzoj千题计划168:bzoj3513: [MUTC2013]idiots
- 算法笔记--极大极小搜索及alpha-beta剪枝
- webapi研究说明
- Thread的中断机制(interrupt)
- 弹性盒式布局flexbox(dispaly:flex)
- Introduce oneself
- 7.6 GRASP原则六: 多态 Polymorphism
- 关于vs code 快速生成vue 模板
- Vue.js 3.0 新特性预览
- 全面了解TCP/IP到HTTP