Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >乒乓球比赛的记分表-统计乒乓球分数,含结构体的赋值与读取

乒乓球比赛的记分表-统计乒乓球分数,含结构体的赋值与读取

原创
作者头像
eisc
修改于 2024-03-14 00:16:17
修改于 2024-03-14 00:16:17
19300
代码可运行
举报
运行总次数:0
代码可运行
代码语言:c
代码运行次数:0
运行
AI代码解释
复制


#---- TableTennis.h ----#

typedef struct
{  
    int aCount;
    int aStatusFlag;
    int aWinFourgamesFlag;
    int aCompetentFlag;

}aScoreStruct;
extern aScoreStruct aScoreS;

typedef struct
{  
    int bCount;
    int bStatusFlag;
    int bWinFourgamesFlag;
    int bCompetentFlag;

}bScoreStruct;
extern bScoreStruct bScoreS;







#---- TableTennis.c ----#

#include <stdio.h>
#include "TableTennis.h"

aScoreStruct aScoreS;
bScoreStruct bScoreS;           // 结构体声明,引用,理解为: 结构体 被 bScoreS 继承

#define  ScoreZero      0       // 定义常量变量,理解为 普通变量 后面是赋值 0 
#define  ScoreFour      4
#define  ScoreTen       10
#define  ScoreEleven    11
#define  ScoreTwelve    12

static int VictoryExitFlag = 0; // static 静态变量  其数值 为0 不被更改,一般在函数内:被其他方法赋值后,在其他if 或者 for 等方法中 不希望保留数值,而是每次都是 0 进行使用 
static int abTieFlag = 0;

void Counting_Score(aScoreStruct *_aScoreS,bScoreStruct *_bScoreS,int inputData[2])     
{                              // 结构体 赋值给 指针,main 函数调用本函数需要传递内存地址
    if( inputData[0] == 1 )
    {
        _aScoreS->aStatusFlag = 1;
        _aScoreS->aCount++;
    }
    else
    {
        _bScoreS->bStatusFlag = 1;
        _bScoreS->bCount++;
    }

    if(_aScoreS->aCount == ScoreFour && _bScoreS->bCount == ScoreZero)
    {
        VictoryExitFlag = 1;
        aScoreS.aWinFourgamesFlag = 1;
        printf("\n a 胜利,连胜 %d 局 \n",ScoreFour);
    }
    
    if(_aScoreS->aCount == ScoreZero && _bScoreS->bCount == ScoreFour)
    {

        VictoryExitFlag = 1;
        bScoreS.bWinFourgamesFlag = 1;
        printf("\n b 胜利,连胜 %d 局 \n",ScoreFour);
    }

    if( _bScoreS->bCount == ScoreTen && _aScoreS->aCount == _bScoreS->bCount ) 
    {
        printf("\n a b 在 %d : %d 中平局,需要加局赛 \n",ScoreTen,ScoreTen );
        abTieFlag = 1;
    }

    if( _aScoreS->aCount == ScoreTwelve && abTieFlag == 1)
    {
        VictoryExitFlag = 1;
        printf("\n a 胜利,得分: %d ; 来自: %d : %d 平局加局赛 \n",_aScoreS->aCount, ScoreTen,ScoreTen);
    }

    if( _bScoreS->bCount == ScoreTwelve && abTieFlag == 1)
    {
        VictoryExitFlag = 1;
        printf("\n b 胜利,得分: %d ; 来自: %d : %d 平局加局赛 \n",_bScoreS->bCount, ScoreTen,ScoreTen);
    }

    if( _aScoreS->aCount == ScoreEleven && abTieFlag == 0)
    {
        VictoryExitFlag = 1;
        printf("\n a 胜利,得分: %d ; 来自:先得 11 分\n",_aScoreS->aCount);
    }

    if( _bScoreS->bCount == ScoreEleven && abTieFlag == 0)
    {
        VictoryExitFlag = 1;
        printf("\n b 胜利,得分: %d ; 来自:先得 11 分\n",_bScoreS->bCount);
    }
}

int TableTennis(void)
{
    for(;;)
    {
        int inputData[2];

        if( VictoryExitFlag == 1 )
        {
            printf("\n 统计结束 \n");
            break;
        }

        printf("\n 输入 A 的分数,然后回车输入B的分数 \n");
        for(int i=0;i<2;i++)
        {
            scanf("%d",&inputData[i]);
        }

        Counting_Score(&aScoreS,&bScoreS,inputData);

        printf("\n aScoreS.aCount = %d,aScoreS.aWinFourgamesFlag = %d,\n bScoreS.aCount = %d,bScoreS.bWinFourgamesFlag = %d",aScoreS.aCount,aScoreS.aWinFourgamesFlag,bScoreS.bCount,bScoreS.bWinFourgamesFlag);
    }
}

int main()
{
    TableTennis();
}







原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
C语言实现2048游戏(Windows版)
未名编程
2024/10/12
2230
C语言实现2048游戏(Windows版)
江哥带你玩转C语言 | 15- 修饰符和预处理指令
#include <stdio.h> int main(){ printf("hello lnj\n"); return 0; }
极客江南
2021/07/11
1.2K0
记录比赛分数
案例需求: 欢迎界面 记录新的比赛分数 查看往届记录 清空比赛记录 退出程序 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<Windows.h> #include<stdlib.h> #define FILENAME "score.txt" //控制台输出位置 //gotoxy只对下面一行的输出语句有用 void gotoxy(int x, int y) { //设置输出位置 COORD pos = { x,y }; //x行
大忽悠爱学习
2021/03/02
5340
C语言实现录入学生信息并按分数排序输出
需求 实现在控制台录入学生姓名和分数 使用冒泡排序法将录入的信息按分数从大到小输出 分析 根据需求将按照以下步骤来实现 定义学生结构体,结构体成员包含学生的姓名和分数 定义结构体数组存放学生信息 用冒泡排序法将录入的信息按分数从大到小排序 循环遍历排序后的结构体数组的信息 代码实现 student.h #include <stdio.h> typedef struct student { char name[20]; int score; }stu; static void add_st
C语言中文社区
2022/05/31
8690
C语言实现录入学生信息并按分数排序输出
【重新认识C语言----结构体篇】
在C语言编程中,结构体(Structure) 是一种非常重要的复合数据类型。它允许开发者将多个不同类型的变量组合成一个逻辑单元,从而更高效地管理复杂数据。无论是实现链表、树等数据结构,还是描述现实世界中的实体(如学生、商品等),结构体都扮演着核心角色。本文将详细讲解结构体的定义、使用及高级特性,帮助读者彻底掌握这一关键概念。
用户11456817
2025/02/08
1720
C和指针学习
这个名字是编译器默认的输出名。如果要修改可执行文件的名字可以加-o参数:gcc -o myexec main.c
Java架构师必看
2021/07/13
3610
结构体与指针(一)
在学习数据结构的时候,会经常使用到结构体。今天分享的内容是结构体与指针,因为结构体和指针本身的内容并不是太多,所以今天的内容还包括了链表的实现。希望可以通过这篇博客,让大家熟悉结构体与指针,以及链表的实现。
ZackSock
2020/02/14
7330
结构体学不明白,小代老师带你深入理解结构体
C语⾔已经提供了内置类型,如:char、short、int、long、float、double等,但是只有这些内置类 型还是不够的,假设我想描述学⽣,描述⼀本书,这时单⼀的内置类型是不⾏的。 描述⼀个学⽣需要名字、年龄、学号、⾝⾼、体重等; 描述⼀本书需要作者、出版社、定价等。C语⾔为了解决这个问题,增加了结构体这种⾃定义的数据类 型,让程序员可以⾃⼰创造适合的类型。
用户11319080
2024/10/17
1400
结构体学不明白,小代老师带你深入理解结构体
[C语言]结构体进阶与枚举联合
有时候我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号、姓名、性别、年龄、地址等属性.显然单独定义以上变量比较繁琐,数据不便于管理,C语言中给出了另一种构造数据类型——结构体.
IT编程爱好者
2023/04/12
6790
[C语言]结构体进阶与枚举联合
C语言基础(4)
函数的作用是:定义一个函数,在进行多次复杂计算时可以直接引用过来,避免函数的复杂冗长,节省内存和时间。简单来说就是:简化代码,代码复用。下面举一例子:
see.
2024/06/04
1660
C语言基础(4)
C语言基础总结
我学习的第一门编程语言是Java,所以之前一直没有系统学习过C语言。这篇文章主要就是我学习过程的一个总结,方便以后复习查看。
害恶细君
2024/09/16
2920
C语言基础总结
剖析c语言结构体的高级用法(一)
在写这篇文章之前,说实话,自身对结构体的用法,只会两点——就是点访问式和指针式访问结构体内部成员。这对一个搞底层的工程师来讲,显然实在太low了。不妨读者看到这里,可以停下来思索一下,看看自己对c语言结构体掌握了多少。下面是我这几天结合自己的学习而总结的一篇算比较全的关于结构体的用法,欢迎大家来吐槽。
用户6280468
2022/03/21
5430
剖析c语言结构体的高级用法(一)
完全入门C语言
C语言是一门通用的计算机编程语言,广泛应用于底层开发。其设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。有良好的跨平台的特性。 同时C语言还是面向过程的编程语言,这与JAVA C++等面向对象的编程语言有所不同。 目前主流的C语言编译器有:GCC Clang MVSVC等
Yui_
2024/10/15
2870
完全入门C语言
終於弄明白C++關鍵字了(1)
今天就總結下,今後再查也稍微快點,希望記住巴拉。能想到的先就這些哈,歡迎留言補充哦。
用户9831583
2022/06/16
3250
終於弄明白C++關鍵字了(1)
C语言共用体与枚举类型-学习三十
本文最后更新于2022年02月26日,已超过2天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
XG.孤梦
2022/03/01
5790
C语言共用体与枚举类型-学习三十
C语言入门系列之10.结构体和共用体
引入: 有时需要将不同类型的数据组合成一个有机的整体,以便于引用。 例如,一个学生有学号、姓名、性别、年龄、地址等属性,需要定义int num; char name[20]; char sex; int age; int char addr[30];等属性,如下:
cutercorley
2020/07/23
1.3K0
C语言入门系列之10.结构体和共用体
C语言进阶—自定义类型:结构体,枚举,联合
struct Student { char name[20]; int age; char sex[5]; float score; } s1, s2, s3;//s1, s2, s3 是三个结构体变量 - 全局变量
小李很执着
2024/06/15
1440
C语言进阶—自定义类型:结构体,枚举,联合
抽丝剥茧C语言(高阶)结构体,枚举,联合+练习
名字,年龄,性别,学号都是成员,后面的分号不能没有,至于分号前面为什么没有对应的,是因为这里可有可无,如果有了就等于这个结构体类型的一个全局变量。 成员要有明确的大小。
有礼貌的灰绅士
2023/03/28
4330
抽丝剥茧C语言(高阶)结构体,枚举,联合+练习
一个printf(结构体指针)引发的血案
在上周六,我在公众号里发了一篇文章:C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻,以直白的语言、一目了然的图片来解释指针的底层逻辑,有一位小伙伴对文中的代码进行测试,发现一个比较奇怪的问题。我把发来的测试代码进行验证,思考好久也无法解释为什么会出现那么奇怪的打印结果。
GorgonMeducer 傻孩子
2021/03/10
9910
初识C语言(3)
 C语言提供了丰富的关键字,这些关键字都是语言本身预先设定好的,用户自己是不能创造关键字的。
用户10923087
2024/01/23
1640
初识C语言(3)
相关推荐
C语言实现2048游戏(Windows版)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验