选择结构程序设计之习题
有3个整数 a,b,c,由键盘输入,输出其中最大的数
//有3个整数 a,b,c,由键盘输入,输出其中最大的数
#include <stdio.h>
int main(void)
{
int a, b, c;
scanf("a=%d b=%d c=%d", &a, &b, &c);
if (a > b)
{
int temp = a;
a = b;
b = temp;
}//a < b
if (a > c)
{
int temp = a;
a = c;
c = temp;
}//a < c
if (b > c)
{
int temp = b;
b = c;
c = temp;
}//b < c
printf("max = %d", c);
return 0;
}
在VS编译器内会报C4996错误,解决见下文:(下同)
运行结果:
从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。
//从键盘输入一个小于1000的正数
// 要求输出它的平方根(如平方根不是整数,则输出其整数部分)要求在输入数据后先对其进行检查是否为小于1000的正数。
// 若不是,则要求重新输入。
#include <stdio.h>
#include <math.h>
int main(void)
{
int a;
printf("请输入小于1000的正数\n");
scanf("%d", &a);
while ((a >= 1000) || (a <= 0))
{
printf("请重新输入\n");
scanf("%d", &a);
}
double sq = sqrt(a);
int iSq = (int)sq;
printf("%d", iSq);
return 0;
}
运行结果:
有一个函数,当 x < 1 时,y = x;当 x >= 1 且 x < 10 时,y = 2x - 1;当 x >= 10时,y = 3x - 11;写程序,输入 x 的值,输出 y 相应的值
//有一个函数,当 x < 1 时,y = x;当 x >= 1 且 x < 10 时,y = 2x - 1;当 x >= 10时,y = 3x - 11;写程序,输入 x 的值,输出 y 相应的值
#include <stdio.h>
int main(void)
{
double x;
scanf("%lf", &x);
double y;
if (x < 1)
y = x;
else if (x < 10)
y = 2 * x - 1;
else
y = 3 * x - 11;
printf("y=%lf\n", y);
return 0;
}
运行结果:
结果一: 结果二: 结果三:
给出一百分制的成绩,要求输出成绩等级‘A’‘B’‘C’‘D’‘E’90以上为‘A’[80,89]为‘B’[70,79]为‘C’[60, 69]为‘D’60以下为‘E’
//给出一百分制的成绩,要求输出成绩等级‘A’‘B’‘C’‘D’‘E’90以上为‘A’[80,89]为‘B’[70,79]为‘C’[60, 69]为‘D’60以下为‘E’
#include <stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
if (a < 60)
{
printf("E");
return 0;
}
int i = a / 10;
switch (i)
{
case 6:
printf("D");
break;
case 7:
printf("C");
break;
case 8:
printf("B");
break;
case 9:
case 10:
printf("A");
break;
}
return 0;
}
运行结果:
结果一: 结果二: 结果三: 结果四: 结果五:
给出一个不多于5位的正整数,要求:
- 求出它是几位数
- 分别输出每一位数字
- 按逆序输出各位数字
//求出它是几位数
#include <stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
int i = 0;
while (a > 0)
{
a = a / 10;
i++;
}
printf("是%d位数", i);
return 0;
}
运行结果:
//分别输出每一位数字
#include <stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
while (a > 0)
{
printf("%d\n", a % 10);
a = a / 10;
}
return 0;
}
运行结果:
//按逆序输出各位数字
#include <stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
while (a > 0)
{
printf("%d", a % 10);
a = a / 10;
}
return 0;
}
运行结果:
#include <stdio.h>
int main(void)
{
double I, p;
scanf("%lf", &I);
if (I <= 100000)
p = I * 0.01;
else if (I <= 200000)
p = 100000 * 0.01 + (I - 100000) * 0.075;
else if (I <= 400000)
p = 100000 * 0.01 + 100000 * 0.075 + (I - 200000) * 0.05;
else if (I < 600000)
p = 100000 * 0.01 + 100000 * 0.075 + 200000 * 0.05 + (I - 400000) * 0.03;
else if (I < 1000000)
p = 100000 * 0.01 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (I - 600000) * 0.015;
else
p = 100000 * 0.01 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (I - 1000000) * 0.01;
printf("%lf", p);
return 0;
}
运行结果:
结果一: 结果二: 结果三: 结果四: 结果五: 结果六:
输入4个整数,要求按由小到大的顺序输出
//输入4个整数,要求按由小到大的顺序输出
#include <stdio.h>
void swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
int main(void)
{
int a, b, c, d;
scanf("%d %d %d %d", &a, &b, &c, &d);
if (a > b)
swap(a, b);//a < b
if (a > c)
swap(a, c);//a < c
if (a > d)
swap(a, d);//a < d
//至此,a < ...
if (b > c)
swap(b, c);// b < c
if (b > d)
swap(b, d);//b < d
//至此,a < b < ...
if (c > d)
swap(c, d);//c < d
printf("%d %d %d %d", a, b, c, d);
return 0;
}
运行结果:
#include <stdio.h>
#include<math.h>
int main(void)
{
double x, y, d;
scanf("%lf %lf", &x, &y);
if (x < 0)
{
if (y < 0)//-2, -2
d = sqrt(pow(x - (-2), 2) + pow(y - (-2), 2));
else//-2, 2
d = sqrt(pow(x - (-2), 2) + pow(y - 2, 2));
}
else
{
if (y < 0)//2, -2
d = sqrt(pow(x - 2, 2) + pow(y - (-2), 2));
else//2, 2
d = sqrt(pow(x - 2, 2) + pow(y - 2, 2));
}
if (d <= 1)
printf("10");
else
printf("0");
return 0;
}
运行结果:
本文来自博客园,作者:EricsT,转载请注明原文链接:https://www.cnblogs.com/EricsT/p/18488177