所以…我有一小段代码,我早上大部分时间都在做。 这只是一个小项目,可以帮助我记住语法等等。 我显然错过了某种大错误,因为代码因为我不理解的原因返回了分段错误。
#include #include #include #include #include struct cards { int card_value[99]; char card_name[99]; char card_suit[99]; int card_tally; }; struct cards hand[2]; void tally (int a) { int k, j; for (k=0; k5; d++) { if (hand[a].card_name[d] =='A') { int y; int z = 10; for (y=0; y<5; y++) z = z + hand[a].card_value[y]; if (z 1) && (z < 10)) { hand[a].card_value[x]=z; hand[a].card_name[x]=((char) '0' + z); } else if (z == 10) { hand[a].card_value[x]=z; hand[a].card_name[x]='T'; } else if (z == 11) { hand[a].card_value[x]=10; hand[a].card_name[x]='J'; } else if (z == 12) { hand[a].card_value[x]=10; hand[a].card_name[x]='Q'; } else if (z == 13) { hand[a].card_value[x]=10; hand[a].card_name[x]='K'; } else if (z == 1) { /*Function 'check_for_ace' deals with this more properly*/ hand[a].card_value[x]=1; hand[a].card_name[x]='A'; } check_for_ace(a); tally(a); } void display_hands () { int x; printf("nDealer's Hand Shows: "); for (x=0; hand[0].card_name[x]!=0; x++) { printf("%c ", hand[0].card_name[x]); } printf("nPlayer's Hand Shows: "); for (x=0; hand[1].card_name[x]!=0; x++) { printf("%c ", hand[1].card_name[x]); } } void dealer_turn() { while (hand[0].card_tally < 17) draw_card(0); } void player_turn() { int op=0; while (op != 2) { printf("What would you like to do?n"); printf("(1)it or (2)tandn"); scanf("%d", &op); if (op == 1) draw_card(1); } } int main(int argc, char **argv) { srand(time(NULL)); draw_card(0); draw_card(1); draw_card(1); display_hands(); player_turn(); dealer_turn(); display_hands(); return 0; }
现在,真正奇怪的是,看到player_turn和dealer_turn之间的空行? 如果我在其中放置一个display_hands,代码执行时没有错误。
有任何想法吗?
此外,我意识到我确实使用了我不需要的标题。 我打算稍后使用它们,然后将它们留在这篇文章中,这样我就可以完全按照错误保留所有内容。
在执行此行之前,您没有初始化j。
j = j + hand[a].card_value[k];
当我在代码中添加j=0
初始化时,它不再崩溃。
例如
void tally (int a) { int k, j; j=0; /* <----- added this line */ for (k=0; k<5; k++) { j = j + hand[a].card_value[k]; } hand[a].card_tally = j; }
以上就是c/c++开发分享C – 对这种奇怪的行为感到茫然相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/518989.html