数据类型强制转化

#include <stdio.h>

#include <stdbool.h>

void test();

void booltest();

void ouatstran();

void test1();

int main(int argc, char const *argv[])

{

    test();

    booltest();

    ouatstran();

    test1();

    return 0;

}

void test()

{

    int int_data = 11;

    int x, y;

    x = &int_data;

    y = (&int_data - 1);

    float float_a = 0.111;           // 精确到6位

    double double_b = 0.6444;        // 精确到15位

    long double ldouble_c = 0.54646; // 精确到19位

    printf("float_a=%.6f", float_a);

    printf("double_b=%.15f", double_b);

    printf("ldouble_b=%.19Lf", ldouble_c);

    printf(" &int_data-(&int_data-1)=%d\n", x - y);

    printf(" &int_data-(&int_data-1)=%d\n", ((int)&int_data - (int)(&int_data - 1)));

    char char_a;

    printf("请输入一个字符:\n");

    scanf("%c", &char_a);

    printf("%c\n", char_a);

    if (char_a >= 'A' && char_a <= 'Z')

    {

        char_a = char_a + 32;

        printf("1=%c\n", char_a);

    }

    else

    {

        char_a = char_a - 32;

        printf("2=%c\n", char_a);

    }

    // printf("char_a=%c\n", char_a);

}

void booltest()

{

    bool flag;

    int x;

    printf("请输入一个数字:\n");

    scanf("%d", &x);

    if (x % 2 == 0)

    {

        flag = true;

        printf("%d\n", flag);

    }

    else

    {

        flag = false;

        printf("%d\n", flag);

    }

    if (flag == true)

    {

        printf("x是偶数\n");

    }

    else

    {

        printf("x是奇数\n");

    }

}

void ouatstran()

{

    int q;

    printf("请输入一个整形:\n");

    scanf("%d", &q);

    short x;

    printf("请输入一个短整形:\n");

    scanf("%hd", &x);

    float b;

    printf("请输入一个浮点形:\n");

    scanf("%f", &b);

    // double c;

    // printf("请输入一个双精度浮点形:\n");

    // scanf("%lf", &c);

    int d;

    b = x + q;

    printf("b=%.6f\n", b);

    q = (int)b + q;

    printf("q=%d\n", q);

}

void test1()

{

    int x;

    int i, j, k;

    k = 0;

    printf("请输入一个数:\n");

    scanf("%d", &x);

    j = x;

    while (1)

    {

        j = j / (10);

        k++;

        if (j == 0)

        {

            break;

        }

        /* code */

    }

    j = 1;

    i = 0;

    for (; k >0; k--)

    {

       printf("%d\n",x%10);

       x=x/10;

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值