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

}

相关推荐
Lizhihao_12 分钟前
JAVA-队列
java·开发语言
算法歌者15 分钟前
[算法]入门1.矩阵转置
算法
林开落L30 分钟前
前缀和算法习题篇(上)
c++·算法·leetcode
远望清一色31 分钟前
基于MATLAB边缘检测博文
开发语言·算法·matlab
tyler_download32 分钟前
手撸 chatgpt 大模型:简述 LLM 的架构,算法和训练流程
算法·chatgpt
何曾参静谧39 分钟前
「Py」Python基础篇 之 Python都可以做哪些自动化?
开发语言·python·自动化
Prejudices43 分钟前
C++如何调用Python脚本
开发语言·c++·python
单音GG1 小时前
推荐一个基于协程的C++(lua)游戏服务器
服务器·c++·游戏·lua
SoraLuna1 小时前
「Mac玩转仓颉内测版7」入门篇7 - Cangjie控制结构(下)
算法·macos·动态规划·cangjie
我狠狠地刷刷刷刷刷1 小时前
中文分词模拟器
开发语言·python·算法