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.输出两个数的和
#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.平均数计算
#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.三个小数求和
强制转换
#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.时、分、秒转换
#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.计算银行存款本息
#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.输出相邻的字母
#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 码和后继字符
#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