【19】牛客网BC21 浮点数的个位数字

在这里插入图片描述
原题链接

思路:将浮点数强制类型转换成整型,再对10取模,就得到个位数了。

#include <stdio.h>
int main()
{
    float f = 0.0f;
    scanf("%f", &f);
    int a = (int)f;
    printf("%d\n", a % 10);
    
    return 0;
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我理解了您的问题。以下是用 C 语言实现的解决方案: ```c #include <stdio.h> #include <string.h> #include <ctype.h> #define MAX_LEN 20 int main() { char str[MAX_LEN + 1]; printf("请输入一个长度不超过20的符串:"); fgets(str, MAX_LEN + 1, stdin); str[strcspn(str, "\n")] = '\0'; // 去掉符串末尾的换行符 int len = strlen(str); char digits[len + 1]; int num_count = 0; for (int i = 0; i < len; i++) { if (isdigit(str[i])) { digits[num_count++] = str[i]; } } digits[num_count] = '\0'; int digit_idx = num_count - 1; for (int i = 0; i < len; i++) { if (isdigit(str[i])) { putchar(digits[digit_idx--]); } else { putchar(str[i]); } } putchar('\n'); return 0; } ``` 首先,我们定义了一个符数组 `str` 来保存用户输入的符串,其长度为 `MAX_LEN`。然后,我们使用 `fgets` 函数从标准输入中读取用户输入的符串,并在末尾添加一个符串结束符 `\0`。接着,我们遍历符串 `str`,将其中的数符保存到符数组 `digits` 中,并记录数符的个数 `num_count`。注意,我们使用 `isdigit` 函数来判断一个符是否为数符。 之后,我们用变量 `digit_idx` 来记录符数组 `digits` 中下一个要输出的数符的下标,初始值为 `num_count - 1`。然后,我们再次遍历符串 `str`,对于每个符,如果它是数符,则输出符数组 `digits` 中对应下标的符,否则直接输出该符。最后,我们输出一个换行符,表示输出结束。 例如,当用户输入符串 `a12bc34d` 时,程序的输出结果为 `a43bc21d`。 希望这个解决方案能够帮助到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值