第四章
4.有3个整数a,b,c,由键盘输人,输出其中最大的数。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a, b, c,d;
scanf("%d%d%d", &a, &b, &c);
d = a;
if (b > d) {
d = b;
}
if (c > d) {
d = c;
}
printf("Max=%d", d);
}
运行结果
5.从键盘输入-一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输人数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
if(n >= 1000) {
printf("大于1000,请重新输入!");
scanf("%d", &n);
}
printf("%d", (int)sqrt(n));
}
运行结果
8.给出一百分制成绩,要求输出成绩等级’A’.‘B’‘C’.‘D’、‘E’。90分以上
为’A’,80~89分为’B’ ,70~79分为’C’ ,60~69分为’D’ ,60分以下为’E’。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
float n;
scanf("%f", &n);
if (n < 60) {
printf("E");
}
else if (n<70) {
printf("D");
}
else if (n < 80) {
printf("C");
}
else if (n < 90) {
printf("B");
}
else {
printf("A");
}
return 0;
}
运行结果
9.给一个不多于5位的正整数,要求:
①求出它是几位数;
②分别输出每一位数字;
③按逆序输出各位数字,例如原数为321,应输出123。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int n,i,j;
scanf("%d", &n);
if (n > 99999) {
scanf("%d", &n);
}
i = 0;
while (n != 0) {
j = n % 10;
printf("%d\n", j);
n = n / 10;
i++;
}
printf("n是%d位数", i);
}
运行结果
10.企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%;
利润高于100 000元,低于200 000元(100 000<I≤200 000)时,低于100 000元的部分按10%提成,高于100 000元的部分,可提成7. 5%;
200 000<1≤400 000时,低于200 000元的部分仍按上述办法提成(下同)。
高于200 000元的部分按5%提成;400 000<I≤600 000元时,高于400 000元的部分按3%提成;
600 000<1≤1 000 000时,高于600 000元的部分按1. 5%提成;I>1000 000时,超过1 000 000元的部分按1%提成。
从键盘输入当月利润I,求应发奖金总数。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int sum,n,su;
su = 0;
int m;
scanf("%d", &n);
if (n <= 100000) {
sum = 100000 + 100000 * 0.1;
}
else if (n > 100000 && n <= 200000) {
sum = 100000 + 100000 * 0.1 + (n - 100000) * 0.075;
}
else if (n > 200000 && n <= 400000) {
sum = 100000 + 100000 * 0.1 + 100000 * 0.075+ (n - 200000) * 0.05;
}
else if (n > 400000 && n <= 600000) {
sum = 100000 + 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05+(n-400000)*0.03;
}
else if (n > 600000 && n < 1000000) {
sum = 100000 + 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000* 0.03+(n-600000)*0.015;
}
else {
sum = 100000 + 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 +400000 * 0.015+(n-1000000)*0.01;
}
m = n / 100000;
if (m >= 10) {
m = 10;
}
switch (m) {
case 0 :su = 100000 + 100000 * 0.1; break;
case 1 : su = 100000 + 100000 * 0.1 + (n - 100000) * 0.075; break;
case 2:su = 100000 + 100000 * 0.1 + 100000 * 0.075 + (n - 200000) * 0.05; break;
case 3:su = 100000 + 100000 * 0.1 + 100000 * 0.075 + (n - 200000) * 0.05; break;
case 4:su = 100000 + 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (n - 400000) * 0.03; break;
case 5:su= 100000 + 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (n - 400000) * 0.03; break;
case 6:su = 100000 + 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (n - 600000) * 0.015; break;
case 7:su= 100000 + 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (n - 600000) * 0.015; break;
case 8:su = 100000 + 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (n - 600000) * 0.015; break;
case 9:su = 100000 + 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (n - 600000) * 0.015; break;
case 10: su = 100000 + 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (n - 1000000) * 0.01;
}
printf("%.4d %.4d",su,sum);
return 0;
}
运行结果
11.输人4个整数,要求按由小到大的顺序输出。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a, b, c, d,e;
scanf("%d%d%d%d", &a, &b, &c, &d);
if(b<a){
e = a;
a = b;
b = e;
}
if (c < a) {
e = c;
c = a;
a = c;
}
if (d < a) {
e = d;
d = a;
a = e;
}
if (c < b) {
e = b;
b = c;
c = e;
}
if (d < b) {
e = d;
d = b;
b = e;
}
if (d < c) {
e = c;
c = d;
d = e;
}
printf("%d%d%d%d", a, b, c, d);
return 0;
}
运行结果
12.有4个圆塔,圆心分别为(2,2)、(一2,2).(一2,-2)、(2,-2),圆半径为1,见图4.17。这4个塔的高度为10m,塔以外无建筑物。今输人任一点的坐标,求该点的建筑高度(塔外的高度为零)。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int main() {
int h, x, y;
double s;
scanf("%d%d", &x, &y);
if (x > 0 && y > 0) {
s = sqrt((x-2) * (x-2) + (y-2) * (y-2));
if (s <= 1) {
h = 10;
}
else {
h = 0;
}
}
if (x < 0 && y > 0) {
s = sqrt((x + 2) * (x + 2) + (y - 2) * (y - 2));
if (s <= 1) {
h = 10;
}
else {
h = 0;
}
}
if (x < 0 && y < 0) {
s = sqrt((x + 2) * (x + 2) + (y + 2) * (y + 2));
if (s <= 1) {
h = 10;
}
else {
h = 0;
}
}
if (x > 0 && y < 0) {
s = sqrt((x - 2) * (x - 2) + (y + 2) * (y + 2));
if (s <= 1) {
h = 10;
}
else {
h = 0;
}
}
if (x == 0 || y == 0) {
h = 0;
}
printf("%d",h);
}
运行结果