零碎时间竟然花了一天,自己的代码也没运行出来555~
先贴一下我的代码,依旧是C哈哈哈
#includechar pat[55][3],pat1[55][3]; int main(){ int n,i,j,k; scanf("%d",&n); int seq[55]; for(i=1;i<55;i++){ scanf("%d",&seq[i]); } for(i=1;i<14;i++){ pat[i][1]='S'; pat[i][2]=(char)i; } for(i=14;i<27;i++){ pat[i][1]='H'; pat[i][2]=(char)i; } for(i=27;i<40;i++){ pat[i][1]='C'; pat[i][2]=(char)i; } for(i=40;i<53;i++){ pat[i][1]='D'; pat[i][2]=(char)i; } for(i=53;i<55;i++){ pat[i][1]='J'; pat[i][2]=(char)i; } for(k=0;k 没运行出来的原因在于int型数据到char类型的转换,丢失了数据,导致结果不对,怎么解决呢?我不知道hh,如果有大佬知道还望指教哦。后来我还用了指针,依旧没有运行出来,还显得麻烦,就作罢了。
解决输入输出数据涉及多种类型的问题,用C++就好了呀,我来贴个别人的代码
#include#include using namespace std; int main() { string arr1[] = {"","S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13", "H1","H2","H3","H4","H5","H6","H7","H8","H9","H10","H11","H12","H13", "C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13", "D1","D2","D3","D4","D5","D6","D7","D8","D9","D10","D11","D12","D13", "J1","J2"}; string arr2[55]; int repeat; cin >> repeat; int a[55]; for (int i = 1; i <= 54; i++) { cin >> a[i]; } for (int i = 0; i < repeat; i++) { //arr1重排放入arr2 for (int i = 1; i <= 54; i++) { arr2[a[i]] = arr1[i]; } //arr2复制到arr1 for (int i = 1; i <= 54; i++) { arr1[i] = arr2[i]; } } //输出 for (int i = 1; i <= 54; i++) { cout << arr2[i]; if (i != 54)cout << " "; } system("pause"); } 除了输入输出,其他的基本一样,嗯,思路一样嘛!
所以C语言怎么解题?晚点更~
C语言大神版来了
#includeconst int N=54; char mp[5]={'S','H','C','D','J'}; //牌的编号与花色的对应关系 int start[N+1],end[N+1],next[N+1];//next数组存放每个位置上的牌在操作后的位置 int main(){ int K; scanf("%d",&K); for(int i=1;i<=N;i++){ start[i]=i;//初始化牌的编号 } for(int i=1;i<=N;i++){ scanf("%d",&next[i]);//输入每个位置上的牌在操作后的位置 } for(int step=0;step 这个的话是要数学好hhh,去分析牌号与花色以及花色下的编号之间的关系啦!



