各位可能在初学C语言的时候都有写过猜拳游戏。但在写猜拳的函数时,避免不了会使用循环。

  当函数被套在一个循环中的时候,你的计分变量可能就会被重置为函数体里的初始值。那么怎么解决这个问题?

  其实很简单,你需要在循环体中加入一个累加变量,从而使得函数体的单循环计分通过main函数里的循环成为最后的总积分,并且由此来判断最终你的积分和输赢。

  以下是我写的部分代码 ,欢迎指正!

1.函数体部分

  1. int compare(int x,int y){
  2. int j = 0;//函数外的每次循环会使得j的值初始化
  3. if(x<&&x>){
  4. if(y-x==){
  5. printf("此次猜拳两人打成平手!");
  6. }
  7. if(y-x==||x-y==){
  8. if(x>y){
  9. printf("此次猜拳你赢了!加一分!");
  10. j++;
  11. }
  12. else{
  13. printf("此次猜拳电脑赢了!减一分!");
  14. j--;
  15. }
  16.  
  17. }
  18. if(y-x==||x-y==){
  19. if(x>y){
  20. printf("此次猜拳电脑赢了!减一分!");
  21. j--;
  22. }
  23. else{
  24. printf("此次猜拳你赢了!加一分!");
  25. j++;
  26. }
  27. }
  28. }
  29. else{
  30. printf("您输入错误!\n");
  31. }
  32. return j;//返回值在每次主函数循环中会初始化
  33. }

2.main主体

  1. for(i=;i<;i++){
  2. printf("\n");
  3. printf("请输入您的出拳!");
  4. scanf("%d",&x);
  5. y = rand()%;
  6. printf("电脑出拳为:%d\n",y);
  7. ary[i] = compare(x,y);
  8. sum += ary[i];//用sum变量很容易解决了计分变量的初始化问题
  9. }

C语言写猜拳游戏中遇到的函数循环小问题的更多相关文章

  1. R语言写2048游戏

    2048 是一款益智游戏,只需要用方向键让两两相同的数字碰撞就会诞生一个翻倍的数字,初始数字由 2 或者 4 构成,直到游戏界面全部被填满,游戏结束. 编程时并未查看原作者代码,不喜勿喷. 程序结构如 ...

  2. python中关于round函数的小坑

    这个一直都想写,但是因为这个点比较小,所以一直懒得动手.不过还是补上吧,留着早晚是个祸害. round函数很简单,对浮点数进行近似取值,保留几位小数.比如 >>> round(10. ...

  3. TCL语言笔记:TCL中的数学函数

    一.TCL数学函数列表 函数名 说明 举例 abs(arg) 取绝对值 set a –10  ; #a=-10 set a [expr abs($a)]; # a=10 acos(arg) 反余弦 s ...

  4. 如何应用SPRITEKIT的CAMERA实现游戏中的ENDLESS无限循环背景

    A Tutorial For How To Use SpriteKit Camera Making Endless Background Player运用Camera节点向前移动的效果 向前舞动 命为 ...

  5. Python 中关于 round 函数的小坑

    参考: http://www.runoob.com/w3cnote/python-round-func-note.html

  6. C语言猜拳游戏

    2016年最后一篇文章 今天闲来无事Google了一段C语言写的猜拳游戏的代码(本人水平比较低,几乎是刚入门),我没做什么修改.这个switch语句里面对result的处理让我眼前一新,原来是这么玩的 ...

  7. ajax简单手写了一个猜拳游戏

    使用ajax简单写一个猜拳游戏 HTML代码 <!DOCTYPE HTML> <html lang="en-US"> <head> <me ...

  8. Java中利用随机数的猜拳游戏

    Java中利用随机数的猜拳游戏,实现非常简单,重难点在于随机数的产生. 首先GameJude类是用于判断输赢的一个类: package testGame; public class GameJudge ...

  9. C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目

    C语言,作为大多数人的第一门编程语言,重要性不言而喻,很多编程习惯,逻辑方式在此时就已经形成了.这个是我在大一学习 C语言 后写的推箱子小游戏,自己的逻辑能力得到了提升,在这里同大家分享这个推箱子小游 ...

随机推荐

  1. CentOS 6.4 编译Open vSwitch2.0

    1. 安装依赖软件 yum install automake openssl-devel rpmrebuild kernel-devel make redhat-rpm-config gcc redh ...

  2. Basic Printing Architecture

    https://blogs.technet.microsoft.com/askperf/2007/06/19/basic-printing-architecture/ Printer sharing, ...

  3. idea 14运行java工程报错-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable and mvn script match.

    报错信息:Disconnected from the target VM, address: '127.0.0.1:59770', transport: 'socket' -Dmaven.multiM ...

  4. 【从零学习openCV】IOS7下的人脸检測

    前言: 人脸检測与识别一直是计算机视觉领域一大热门研究方向,并且也从安全监控等工业级的应用扩展到了手机移动端的app,总之随着人脸识别技术获得突破,其应用前景和市场价值都是不可估量的,眼下在学习ope ...

  5. Ubuntu Wpa wifi connection

    最近做一个项目,需要做一个WIFI连接模块,这几天都在折腾,终于,今天终于是连上网络了,只不过连网的过程有点慢,还有一些缺点,先写下来以备忘记. 1.环境建立: sudo apt-get instal ...

  6. Android Studio使用教程(一)

    今年的Google全球开发者大会虽然没有新的Android系统和设备,但是还是推出了一些不错的产品,Android Studio就是其中之一.这个基于Intellij IDEA开发的Android I ...

  7. linux/unix运行级别

    在SYSTEM V 风格的UNIX系统中,系统被分为不同的运行级别,这和BSD分支的UNIX有所不同,常用的为0~6七个级别:0关机 1单用户 2不带网络的多用户 3带网络的多用户 4保留,用户可以自 ...

  8. 忘记mysql 5.7的密码

    for windows: http://blog.chinaunix.net/uid-27570589-id-3511820.html 一.将net stop mysql; 二.在命令行中 C:\Us ...

  9. redisi配置安装

    一.单机配置 http://www.codeceo.com/article/centos-redis-setup.html 二.测试安装情况 http://blog.sina.com.cn/s/blo ...

  10. thinkphp学习资料

    http://www.5idev.com/p-thinkphp_auto_function_callback.shtml