好题分享 1(牛客网刷题)

目录

一、BC7 缩短二进制

二、BC 34 进制A+B

三、BC11 学生基本信息输入输出

四、BC28 大小写转换



一、BC7 缩短二进制

#include <stdio.h>

int main() 
{
    printf("%#o %#X\n", 1234, 1234);
    return 0;
}

printf 函数使用格式控制串 "%o"、"%d" 以及 "%x"(或者 "%X")分别输出八进制整数、十进制整数以及十六进制整数。还可以使用修饰符 '#' 控制八进制数和十六进制的前导(即 0 和 0x 或者 0X)显示。注意:不能使用 printf 函数输出二进制数。

二、BC 34 进制A+B

#include <stdio.h>

int main() 
{
    int a = 0;
    int b = 0;
    scanf("%x %o", &a, &b);
    printf("%d\n", a + b);
    return 0;
}

三、BC11 学生基本信息输入输出

法一:

#include <stdio.h>

int main()
{
	int n = 0;
	float c_lang = 0.0, math = 0.0, english = 0.0;
	// 1. 输入
	scanf("%d;%f,%f,%f", &n, &c_lang, &math, &english);
	// 2. 输出
	printf("The each subject score of No. %d is %.2f, %.2f, %.2f.", n, c_lang, math, english);
	return 0;
}

法二:

#include <stdio.h>

int main()
{
	int n = 0;
	double c_lang = 0.0, math = 0.0, english = 0.0;
	// 1. 输入
	scanf("%d;%lf,%lf,%lf", &n, &c_lang, &math, &english);
	// 2. 对 3 科成绩进行四舍五入并保留 2 位小数
	c_lang = (int)(c_lang * 100 + 0.5) / 100.0;  
	math = (int)(math * 100 + 0.5) / 100.0;
	english = (int)(english * 100 + 0.5) / 100.0;
	// 3. 输出
	printf("The each subject score of No. %d is %.2lf, %.2lf, %.2lf.", n, c_lang, math, english);
	return 0;
}

当使用精度更高的浮点数类型 double 时,输出成绩时就不能完全保证保留 2 位小数且四舍五入。

c_lang * 100 后,原来数字的第 3 位小数变成了新数字的第 1 位小数,而 +0.5,则是判断原来数字的第 3 位小数的数值是否大于等于 5,实现四舍五入的效果。 

 

四、BC28 大小写转换

#include <stdio.h>

int main() 
{
    char ch = 0;
    while(scanf("%c", &ch) != EOF)
    {
        printf("%c\n", ch + 32);
        getchar();  // 清理输入缓冲区中的 \n,这一步非常重要
    }
    return 0;
}
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值