鹏哥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;

}

相关推荐
某林2123 小时前
局部路径规划器 DWB:速度采样与评分权重的取值分析
人工智能·算法·架构·机器人·技术复盘
geovindu3 小时前
rust: Mediator Pattern
开发语言·后端·设计模式·rust·中介者模式·行为模式
AI职业加油站3 小时前
模数共振行动解读|大模型应用工程师证书,匹配行业 RAG/Agent 落地人才需求
人工智能·学习·算法·职场和发展·职场发展
传奇开心果编程4 小时前
【Rust入门练中学】第8课:错误处理
开发语言·rust·错误处理·编程语言理论·通用编程语言
郑同学的笔记4 小时前
【c++随笔30】C++ 注册回调函数
开发语言·c++
七夜zippoe4 小时前
启元 Q1 腿部运动学逆解:Python 算站立下蹲关节角
开发语言·python·ai·机器人·腿部运动学
熊猫钓鱼>_>4 小时前
精准碰一碰近场分享与拖拽投送实战:把文件“碰“进另一台设备【鸿蒙心迹】
开发语言·华为·harmonyos·鸿蒙·openharmony
lengxuenong4 小时前
树状数组 · 信息学学习手册2-离散化与逆序对
c++·学习·算法
琳达爱分享4 小时前
五个线程同时去换 token,四个被踢下线:刷新接口其实不是幂等的
后端·算法·架构
十二4 小时前
【洛谷题解】P1115 最大子段和(前缀和 + 维护最小前缀)
数据结构·c++·算法·蓝桥杯