编程01-10

[代码示例]本文详细展示了如何用C语言解决多个问题,如提取中间4位数、奖金计算、ASCII字符操作等,适合初学者理解基本编程概念和技术应用。
摘要由CSDN通过智能技术生成

01.完成对应数的输出

请输入一个 8 位的十进制整数,编写程序取出该整数的中间 4 位数, 分别输出取出的这 4 位数
以及该 4位数加上 1024 的得数。
输出:两个整数,用空格分隔

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
	int n;
	scanf("%d", &n);
	n = n / 100;
	n = n % 10000;
	printf("%d", n);
	printf(" %d", n + 1024);
	return 0;
}

02.输入利润输出奖金

企业发放的奖金根据利润提成。利润低于或等于 10 万元时,奖金可提 10%;利润高于 10 万
元,低于等于 20 万元时,低于 10 万元的部分按 10%提成,高于 10 万元 的部分,可提成 8%;
20 万到 40 万之间时,高于 20 万元的部分,可提成 5%;40 万到 60 万之 间时高于 40 万元的
部分,可提成 3%;60 万到 100 万之间时,高于 60 万元的部分,可提成 2%, 高于 100 万元
时,超过 100 万元的部分按 1%提成。编写程序,输入用户当月利润,输出发放奖 金总数。

三元运算符 (布尔表达式)?表达式1:表达式2

运算过程:如果布尔表达式的值为 true ,则返回 表达式1 的值,否则返回 表达式2 的值

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
	int L;
	scanf("%d", &L);
	(L <= 100000) ? printf("%d", L / 10) : 0;
	(L > 100000 && L <= 200000) ? printf("%d", (L - 100000) / 100 * 8 + 10000) : 0;
	(L > 200000 && L <= 400000) ? printf("%d", (L - 200000) / 100 * 5 + 18000) : 0;
	(L > 400000 && L <= 600000) ? printf("%d", (L - 400000) / 100 * 3 + 28000) : 0;
	(L > 600000 && L <= 1000000) ? printf("%d", (L - 600000) / 100 * 2 + 34000) : 0;
	(L > 1000000) ? printf("%d", (L - 1000000) / 100 * 1 + 42000) : 0;
	return 0;

03.输出两个数的和

输入整数 a b ,若 a a+b b 大于等于 100 ,则输出 a a+b b 百位及以上的数字,否则输出 a a+b b 。例
如,输入 25 25 ,它们的平方和为 625+ 625= 1250 ,百位及以上数为 12.
输出:两个整数,中间用空格隔开。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main() {
	int a,b;
	scanf("%d%d", &a,&b);
	a = a * a + b * b;
	if (a >= 100) {
		printf("%d", a / 100);
	}
	else {
		printf("%d", a);
	}
	return 0;
}

04.平均数计算

从键盘输入任意 3 个整数,然后输出这 3 个数的平均值。
输入: 3 个整数,用空格分隔。
输出:平均数(实数,提示:输出平均值时请使用格式符 “%g” )。
#include 
int main()
{
 int a, b, c;
 scanf("%d%d%d", &a, &b, &c);
 printf("%g", (a + b + c) / 3.0);
 return 0;
}
注意除以3.0 而不是 3

输入输出类型%d

’"%d"输十进制整数

"%f"or"%lf"输float或输double

"%g"输出实数,根据数值的大小,自动选f格式或e格式,且不输出无意义的0

"%c"输字符型数据
"%s"输字符串
"%%"输%

05.三个小数求和

编写程序,输入任意的 3 个小数;将这 3 个小数相加,将相加的结果以及 按四舍五入方法转换
成整数后的结果显示输出。
输入: 3 个小数,空格分隔。
输出:和,四舍五入后的整数, 1 行显示,空格分隔。
强制转换
#include 
int main()
{
float a, b, c, d;
scanf("%f %f %f", &a, &b, &c);
d = a + b + c;
printf("%g %d", d, (int)(d+0.5));
return 0;
}

06.和差积商

#include <stdio.h>
int main()
{
 int a, b;
 scanf("%d%d", &a, &b);
 printf("%d %d %d %d", a + b, a - b, a * b, a / b);
 return 0;
}

/ :当两边为int型时,返回值为int型

当有至少一边为浮点型时,返回值为浮点型

%:两边必须为int型

07.时、分、秒转换

输入总秒数,转换为相应的时、分、秒。
提示:在输出时,请使用下面的格式(变量名不要求一样)
printf("%d:%.2d:%.2d", h, m, s)
#include <stdio.h>
int main()
{
 int t;
 scanf("%d", &t);
 printf("%d:%.2d:%.2d\n", t / 3600, (t % 3600) / 60, t % 60);
 return 0;
}

输入输出格式%.2d

%2d:按宽度为2输出,右对齐方式输出。若不够两位,左边补空格。

%-2d:与%2d类似,采用左对齐方式输出。

%02d:同样宽度为2,右对齐方式。位数不够,左边补0。

%.2d:从执行效果来看,与%02d一样。

%.2f表示单精度浮点型(float,默认保留),%lf表示双精度浮点型(double,默认保留6位);.2表示只保留小数点后两位数

08.计算银行存款本息

计算银行存款本息。输入存款金额 money (单位:元),存期 years ,年利率 rate ,计算到期存
款本息(保留 2 位小数)。计算公式如下:
sum=money*(1+rate)^years
#include <stdio.h>
#include <math.h>
int main()
{
 float money, years, rate;
 scanf("%f,%f,%f", &money, &years, &rate);
 printf("%.2f", money * pow(1 + rate, years));
 return 0;
}
数学函数 pow(x,y) ,其中 x,y 均为 double
当x,y为int型时,编译时会默认为double型

09.输出相邻的字母

输入一个大写英文字母, 输出与其相邻的字母串(将字母 A- Z 看作是收尾相接的环状排列)。
#include <stdio.h>
int main()
{
 char x;
 scanf("%c", &x);
 int pos = x - 'A';//得到x是第几位字母
 int pre = 'A' + (pos + 25) % 26;
 int next = 'A' + (pos + 1) % 26;
 printf("%c%c%c", pre, x, next);
 return 0;
}

10.输出字母的 ASCII 码和后继字符

输入由 4 个字母构成的英文单词,按如下格式输出字母,该字母的 ASCII 码以及该字母的后继字
符。每行输出数据之间用一个空格分隔。
#include<stdio.h>
int main()
{
 char a[5];//不可以写a[4],因为输入四个字符实际占用五个位置,末尾会自动添加'\0'
 scanf("%s", &a);
 for (int i = 0; i <= 3; i++)
 {
 printf("%c %d %c\n", a[i], a[i], (int)a[i] + 1);
 }
 return 0;
}

输入四个字符实际占用五个位置,末尾会自动添加'\0'

空字符:

'\0' 或 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值