l_c_cl 2023-03-01 00:29 采纳率: 100%
浏览 16
已结题

洗牌问题,数组重制,出现栈溢出

运行出现


*** stack smashing detected ***: <unknown> terminated

作为大一学生不理解
我的思路是使用两个函数进行操作拆解,一个是交换一个是输出。首先是创建一个数组存数字代表卡牌,一个数组存交换规律,一个空数组。在交换里则是将前一个数组换到后一个数组,可以通过改变变量列表顺序来实现承接数组的选择,让n不限制程序的正确性,让程序具有移植性,后选择好最后的承接数组将数组内数组转换成卡牌进行输出

img

img

#include <iostream>
using namespace std;
void change (int a[54],int b[54],int c[54])
{
    int m;
    for(int i = 0;i<54;i++)
    {
        m = a[i];
        c[m] = b[i];
    }
}//将原数组顺序改变并存入下一个数组
void shuchu (int a[54])
{
    int n,flag = 1;
    for(int i = 0;i<54;i++)
    {
        if(i ==53) flag = 0;
        n = a[i]%13;
        if(n == 0) n = 13;
        if(a[i]/13 == 0) cout<<"S"<<n;
        if(a[i]/13 == 1) cout<<"H"<<n;
        if(a[i]/13 == 2) cout<<"C"<<n;
        if(a[i]/13 == 3) cout<<"D"<<n;
        if(a[i]/13 == 4) cout<<"J"<<n;
        if(flag != 0) cout<<endl;
    }
}//将数字大小转换为牌的符号
int main()
{
    int a;
    cin>>a;
    int A[54],B[54],C[54];
    for(int i = 0;i<54;i++)
    {
        B[i] = i+1;
    }//数组B用于存数字表示每一张卡牌
    for(int i = 0;i<54;i++)
    {
        cin>>A[i];
    }//数组A表示洗牌的规律
    for(int i = 1;i<=a;i++)
    {
        if(i%2 != 0) change(A,B,C);
        if(i%2 ==0) change(A,C,B);
    }//根据洗牌次数决定交换次数以及最后作为结果的数组
    if(a%2 !=0) shuchu(C);
    if(a%2 ==0) shuchu(B);//将确定的结果数组输出
    return 0;
}

我的思路是使用两个函数进行操作拆解,一个是交换一个是输出。首先是创建一个数组存数字代表卡牌,一个数组存交换规律,一个空数组。在交换里则是将前一个数组换到后一个数组,可以通过改变变量列表顺序来实现承接数组的选择,让n不限制程序的正确性,让程序具有移植性,后选择好最后的承接数组将数组内数组转换成卡牌进行输出。

  • 写回答

2条回答 默认 最新

  • 元气少女缘结神 2023-03-02 14:38
    关注

    越界了。
    因为按输入样例,i=8时,A[i]=A[8]=54
    你看change函数内,i=8时 m=A[i]=54,然后你c[m]=c[54] 这不是越界了吗,c总共才能取0 ~ 53 !

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月15日
  • 已采纳回答 3月7日
  • 创建了问题 3月1日

悬赏问题

  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥15 想问一下树莓派接上显示屏后出现如图所示画面,是什么问题导致的
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化