鹏哥C语言49---第5次作业:选择语句 if 和 switch

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

//---------------------------------------------------------------------------------第 5 次作业:选择语句 if 和 switch

//-----------------------------------------------------------------1.输出结果

/*

int main()

{

int i = 0;

for (i = 0; i < 10; i++)

{

if (i = 5) //这里不是判断,是赋值

printf("%d", i); // 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 死循环

//if (i == 5) //这里不是判断,是赋值

// printf("%d", i); // 5

}

return 0;

}

*/

//-----------------------------------------------------------------2.单选

/*

关于if语句说法正确是:( C ) √

题目内容:

A.if语句后面只能跟一条语句

B.if语句中0表示假,1表示真 -----------非0表示真,不够准确

C.if语句是一种分支语句,可以实现单分支,也可以实现多分支

D.else语句总是和它的对齐的if语句匹配

*/

//-----------------------------------------------------------------3.单选

/*

题目名称:

关于switch说法不正确的是:(A) × C

题目内容:

A.switct语句中的default子句可以放在任意位置

B.switch语句中case后的表达式只能是整形常量表达式----------char 也属于整型家族,因为字符存储时,存的是ASCLL码值

C switch语句中case子句必须在default子句之前

D.switch语句中case表达式不要求顺序

*/

/*--------------------------------------例如

int main()

{

int n = 0;

scanf("%d", &n);

switch (n)

{

case 1:

{

printf("1\n");

break;

}

default:

{

printf("3\n");

break;

}

case 2:

{

printf("2\n");

break;

}

}

return 0;

}

*/

//-----------------------------------------------------------------4.单选

/*

题目名称:

int func(int a)

{

int b;

switch (a)

{

case 1: b = 30; -----------只有有 break 才能跳出语句,没有 break,接着往下走

case 2: b = 20;

case 3: b = 16;

default: b = 0;

}

return b;

}

题目内容: 返回值为(D)

A.30

B.20

C.16

D.0

*/

//-----------------------------------------------------------------5.单选

/*

题目名称:

switch(c)语句中,c不可以是什么类型 (D)

题目内容:

A.int

B.long

C.char

D.float

*/

//-----------------------------------------------------------------6.输出结果

/*

int main()

{

int x = 3;

int y = 3;

switch (x % 2)

{

case 1:

switch (y)

{

case 0:

printf("first");

case 1:

printf("second");

break;

default: printf("helIo");

}

case 2:

printf("third");

}

return 0;

}

// 代码执行结果 helIothird

*/

//----------------------------------------------------------------------7. 编程题:从大到小 输出

//输入:2 3 1

//输出:3 2 1

//----------------------------------- 教学版 1

/*

int main()

{

int a = 0;

int b = 0;

int c = 0;

//输入

scanf("%d %d %d", &a,&b,&c);

//调整顺序

int tmp = 0;

if (a < b)

{

tmp = a;

a = b;

b = tmp;

}

if (a < c)

{

tmp = a;

a = c;

c = tmp;

}

if (b < c)

{

tmp = b;

b = c;

c = tmp;

}

//输出

printf("%d %d %d\n", a,b,c);

return 0;

}

*/

//----------------------------------- 教学版 优化:写个交换函数

/*

void Swap(int* px, int* py)

{

int tmp = *px;

*px = *py;

*py = tmp;

}

int main()

{

int a = 0;

int b = 0;

int c = 0;

//输入

scanf("%d %d %d", &a, &b, &c);

//交换数值,调整顺序

int tmp = 0;

if (a < b)

Swap(&a, &b);

if (a < c)

Swap(&a, &c);

if (b < c)

Swap(&b, &c);

//输出

printf("%d %d %d\n", a, b, c);

return 0;

}

*/

//----------------------------------------------------------------------8. 打印3 的倍数的数

// 写一个代码打印1-100 之间所有3 的倍数的数字

//--------------------------------------------------------- 自写版(正确)

/*

int main()

{

int i = 0;

for (i = 1; i <= 100; i++)

{

if (i % 3 == 0)

{

printf("%d ", i);

}

}

return 0;

}

*/

//-------------------------------------------------------------方法2

/*

int main()

{

int i = 0;

for (i = 3; i <= 100; i += 3)

{

printf("%d ", i);

}

return 0;

}

*/

//---------------------------------------------------------------------------9. 最大公约数

//给定两个数,求这两个数的最大公约数

//---------------------------------------------- 自写版:只找出了所有公约数 ×

#include <math.h>

/*

void Swap(int* px, int* py)

{

int tmp = *px;

*px = *py;

*py = tmp;

}

int main()

{

int a = 0;

int b = 0;

scanf("%d %d", &a, &b);

//找较小值

Swap(&a, &b);

int min = b;

int i = 0;

for (i = 1; i <= min; i++)

{

if ((a % i == 0) && (b % i == 0))

{

printf("%d ", i);

}

}

return 0;

}

*/

//----------------------------------------------教学版1:暴力求解,不够高效

/*

int main()

{

int a = 0;

int b = 0;

scanf("%d %d", &a, &b);

int min = (a < b) ? a : b; //三目操作符 找最小值

int m = min;

while (1)

{

if (a % m == 0 && b % m == 0)

{

break; // 跳出循环

}

m--;

}

printf("%d ", m);

return 0;

}

*/

//----------------------------------------------教学版2:辗转相除法(数学)

/*

int main()

{

int a = 0;

int b = 0;

int c = 0;

scanf("%d %d", &a, &b);

//求最大公约数

while (c=a%b)

{

a = b;

b = c;

}

printf("%d ", b);

return 0;

}

*/

//---------------------------------------------------------------------------10. 打印1000-2000年之间的闰年

//------------------------------------之前写过,没问题 √

/*

int main()

{

int i = 0;

int count = 0;

for (i = 1000; i <= 2000; i++)

{

if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0))

{

count++;

printf("%d ", i);

}

}

printf("\ncount=%d ", count);

return 0;

}

*/

//---------------------------------------------------------------------------11. 打印100-200之间的素数

int main()

{

int i = 0;

int count = 0;

for (i = 101; i <= 200; i += 2)

{

int flag = 1;// flag是1 表示他是素数

int j = 0;

//for (j = 2; j <= i - 1; j++)

for (j = 2; j <= sqrt(i); j++)

{

if (i % j == 0)

{

flag = 0;

//break;

}

}

if (flag == 1)

{

count++;

printf("%d ", i);

}

}

printf("\ncount=%d\n", count);

return 0;

}

相关推荐
2401_8920709820 小时前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
yuzhuanhei20 小时前
Visual Studio 配置C++opencv
c++·学习·visual studio
Wenweno0o20 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
小O的算法实验室20 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
chenjingming66620 小时前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
qq_3395548220 小时前
英飞凌ModusToolbox环境搭建
c语言·eclipse
cch891820 小时前
Python主流框架全解析
开发语言·python
不爱吃炸鸡柳20 小时前
C++ STL list 超详细解析:从接口使用到模拟实现
开发语言·c++·list
十五年专注C++开发20 小时前
RTTR: 一款MIT 协议开源的 C++ 运行时反射库
开发语言·c++·反射
Momentary_SixthSense21 小时前
设计模式之工厂模式
java·开发语言·设计模式