根据整形变量的学习进行的几个代码研究

本文介绍了C语言中的四个实用技巧:如何互换两个整型变量、求十个整数中的最大值、将三个数按从大到小排序以及求两个数的最大公约数。这些技巧对于初学者理解和掌握C语言的基础概念非常有帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一丶互换两个整形变量
这里提供两种方法。
1.定义一个中间变量
比方说开始定义两个整形a,b. 之后在定义一个正形变量c。
通过c这个桥梁我们可以实现a,b的互换。
就好像我们有两个桶装了不等量的水,然后还有一个空桶,我们就可以利用这个空桶,
将两个桶里的水互换。
实现代码如下:

#include<stdio.h>

int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    printf("输入a,b的值:");
    scanf("%d %d", &a,&b);
    c = a;
    a = b;
    b = c;
    printf("a = %d ,b = %d\n", a, b);
    return 0;
}

2.通过异或运算实现变量的互换
异或运算符是指: 如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。即:0^0=0, 1^0=1, 0^1=1, 1^1=0。
例如:10100001^00010001=10110000
通过代码我们能看的更清除一些。

int main()

{
    int a = 0;          //01101
    int b = 0;          //10010
    printf("输入a,b的值:");
    scanf("%d,%d", &a,&b);
    a = a^b;   //11111                   
    b = a^b;    //01101         
    a = a^b;    //10010               如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
    printf("a = %d ,b = %d\n", a, b);
    return 0;
}
当然,a,b的值我们是可以通过scanf键入的,这里的01101和10010方便大家的观看和理解。

二丶求十个整数整数中的最大值
我们先设出一个数组a[10],用来储存题目中要求的十个整数。
再使用两个for循环,第一个用来键入十个整数,第二个用来用来将十个数进行比较。

#include <stdio.h>

int main()
{
    int a[10], i, max;
    for (i = 0; i <= 9; i++)
        scanf("%d", &a[i]);           //键入十个数
    max = a[0];                       //将a[0]赋给max
    for (i = 0; i <= 9; i++)   
    {
        if (a[i]>max)
            max = a[i];              //如果a[i]>max  则将a[i]的值赋给max
    }
    printf("其中最大值为%d\n", max);
}

三丶将三个数按照从大到小输出
这个函数我们同样可以利用中间变量,将每个数两两对比,最后将三个数从大到小输出。
当然此函数用异或的方法进行是没有丝毫问题的。

int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    int i = 0;
    printf("请输入三个数:\n");
    scanf("%d %d %d",&a,&b,&c);
    if (a < b)
    {
        i = a;
        a = b;
        b = i;
    }
    if (a < c)
    {
        i = a;
        a = c;
        c = i;
    }
    if (b < c)
    {
        i = b;
        b = c;
        c = i;
    }
    printf("%d<%d<%d\n",a,b,c);
    return 0;
}

或者

#include <stdio.h>

int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    printf("请输入三个数:\n");
    scanf("%d %d %d", &a, &b, &c);
    if (a < b)
    {
        a = a^b;
        b = a^b;
        a = a^b;
    }
    if (a < c)
    {
        a = a^c;
        c = a^c;
        a = a^c;
    }
    if (b < c)
    {
        b = b^c;
        c = b^c;
        b = b^c;
    }
    printf("%d<%d<%d\n", a, b, c);
    return 0;
}

四丶求两个数的最大公约数

在这里我使用相减法求两个数的最大公约数。
举例说明:
a = 24 b = 16
a>b ,则 a = a - b =24-16 = 8
b = 16
b>a
则 b = b-a = 16 - 8 = 8
a = 8
此时 a = b =8,即求得最大公约数为8。

int main()
{
    int a, b;
    printf("输入两个数字:");
    scanf("%d %d", &a, &b);
    while (a != b)
    {
        if (a>b)
        {
            a = a - b;
        }
        else
        {
            b = b - a;
        }
    }
    printf("最大公约数为:%d\n", b);
    return 0;
}
1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第三方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “三明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、三大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值