选择结构程序设计之习题

cnblogs 2024-10-21 08:09:00 阅读 73

有3个整数 a,b,c,由键盘输入,输出其中最大的数

<code>

//有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错误,解决见下文:(下同)

C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. - EricsT - 博客园 (cnblogs.com)

运行结果:

从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。

<code>

//从键盘输入一个小于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 相应的值

<code>

//有一个函数,当 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’

<code>

//给出一百分制的成绩,要求输出成绩等级‘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位的正整数,要求:

  1. 求出它是几位数
  2. 分别输出每一位数字
  3. 按逆序输出各位数字

<code>

//求出它是几位数

#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;

}

运行结果:

<code>

//分别输出每一位数字

#include <stdio.h>

int main(void)

{

int a;

scanf("%d", &a);

while (a > 0)

{

printf("%d\n", a % 10);

a = a / 10;

}

return 0;

}

运行结果:

<code>

//按逆序输出各位数字

#include <stdio.h>

int main(void)

{

int a;

scanf("%d", &a);

while (a > 0)

{

printf("%d", a % 10);

a = a / 10;

}

return 0;

}

运行结果:

<code>

#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个整数,要求按由小到大的顺序输出

<code>

//输入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;

}

运行结果:

<code>

#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;

}

运行结果:



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。