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

}

相关推荐
shinelord明1 分钟前
【再谈设计模式】享元模式~对象共享的优化妙手
开发语言·数据结构·算法·设计模式·软件工程
დ旧言~8 分钟前
专题八:背包问题
算法·leetcode·动态规划·推荐算法
Monly218 分钟前
Java(若依):修改Tomcat的版本
java·开发语言·tomcat
boligongzhu9 分钟前
DALSA工业相机SDK二次开发(图像采集及保存)C#版
开发语言·c#·dalsa
Eric.Lee20219 分钟前
moviepy将图片序列制作成视频并加载字幕 - python 实现
开发语言·python·音视频·moviepy·字幕视频合成·图像制作为视频
小俊俊的博客10 分钟前
海康RGBD相机使用C++和Opencv采集图像记录
c++·opencv·海康·rgbd相机
7yewh11 分钟前
嵌入式Linux QT+OpenCV基于人脸识别的考勤系统 项目
linux·开发语言·arm开发·驱动开发·qt·opencv·嵌入式linux
waicsdn_haha23 分钟前
Java/JDK下载、安装及环境配置超详细教程【Windows10、macOS和Linux图文详解】
java·运维·服务器·开发语言·windows·后端·jdk
嵌入式科普24 分钟前
十三、从0开始卷出一个新项目之瑞萨RZN2L串口DMA接收不定长
c语言·stm32·瑞萨·e2studio·rzn2l
_WndProc25 分钟前
C++ 日志输出
开发语言·c++·算法