A1042 shuffling machine

// A1042 shuffling machine.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
考察:
1、洗牌机 + 用公式对应花色以及牌号

learn && wrong
1、不要定义名字相近的
2、用char型数组与花色对应起来的公式,真的好强

3、return 0;
4、star[i]没有减减
5、输出一直错,start[i]余上13而不是除以,难怪提示错误
6、已有运行主题原来是两个main,我居然没看到
7、shart数组,初试化的编号,这里就错了,i必须从1开始,所以,end和next都必须从1开始
8、答案里的输出,i != 1输出输出空格,然后它从1开始,也就是第一个不输出,之后都是空格 + 数字,所以最后没有空格, 用之前书里那个也可以
9、老老实实一步一步调试,比猜答案慢慢改更快!
10、花色有J?大王小王!我服了,这种长答案记得把答案copy出文件来一一对应

include <iostream>

using namespace std;
/*编程思想
1、首先一数组,初试化原先的位置
2、按给定位置顺序存入一个next数组,
将start按位置顺序,存入end[]中,用end[]重新装入star[],重复k次
3、用char型数组与花色对应起来的公式,以及编号在13范围内循环的公式
*/

const int num = 54;
char mp[5] = { 'S','H', 'C','D','J' };

int main()
{
    int start[num + 1] = { 0 };
    int next[num + 1] = { 0 };//要存放的位置
    int end[num + 1] = { 0 };//临时位置
    for (int i = 1; i <= num;i++) { //shart数组,初试化的编号,这里就错了,i必须从1开始
        start[i] = i;
    }

    int N;//n为轮数    
    cin >> N;
    for (int i = 1;i <= num; i++) {
        cin >> next[i];//要修改的位置录入
    }
    for (int j = 0;j < N;j++) {
        for (int i = 1;i <= num;i++) {
            end[next[i]] = start[i]; //修改临时位置
        }
        for (int i = 1;i <= num;i++) {
            start[i] = end[i];//重新初始化start
        }
    }
    //按格式输出,花色加数字,然后最后一个没有空格
    for (int i = 1;i <= num;i++) {
        start[i]--;
        if (i < num) printf("%c%d ", mp[start[i] / 13], start[i] % 13 + 1);
        else printf("%c%d", mp[start[i] / 13], start[i] % 13 + 1);
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天还算稳住了,今天老板有交给我任务,11月13号前要完成,第一份工作,我要好好完成,虽然我现在有点慌张和恐惧,但...
    blue蔚阅读 159评论 0 0
  • 今天是星期六,早上刚起来,就去把吕梓豪也叫了起来。结果他一起来就告诉我说他头疼,过去摸摸他的头,果然又发烧了。这是...
    梓豪铭豪妈阅读 191评论 0 0
  • 我在九月遇见雪, 她舞着笑着落上我肩头。 站在寒暑的边缘, 左手一片火红, 右手一树洁白, 回首一帘幽梦。 固执地...
    玫瑰花刺血阅读 455评论 0 2
  • 我的大学算不上勤勤恳恳,但也一般般,看看书,写写字过的清心寡欲。 我沉迷于游戏大概是四个月左右,没...
    宋_俞阅读 589评论 0 0
  • 误解句:父母在,不远游 原文:子曰:“父母在,不远游,游必有方。”——《论语·里仁》 意思是要是出游,必...
    十月十日记阅读 568评论 0 1