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

}

相关推荐
雨中散步撒哈拉15 小时前
17、做中学 | 初三下期 Golang文件操作
开发语言·后端·golang
序属秋秋秋15 小时前
《Linux系统编程之进程环境》【环境变量】
linux·运维·服务器·c语言·c++·操作系统·系统编程
Aileen_0v015 小时前
【Gemini3.0的国内use教程】
android·人工智能·算法·开源·mariadb
CoderYanger15 小时前
C.滑动窗口——1423. 可获得的最大点数
java·开发语言·算法·leetcode·1024程序员节
全栈陈序员15 小时前
【Python】基础语法入门(九)—— 代码规范、调试技巧与性能初探
开发语言·python·代码规范
乌萨奇也要立志学C++15 小时前
【洛谷】二分查找专题 告别二分死循环!模板 + 细节 + 实战
c++·算法
合作小小程序员小小店15 小时前
图书管理系统,基于winform+sql sever,开发语言c#,数据库mysql
开发语言·数据库·sql·microsoft·c#
Yue丶越15 小时前
【C语言】数据在内存中的存储
c语言·开发语言·网络
Rock_yzh15 小时前
LeetCode算法刷题——128. 最长连续序列
数据结构·c++·算法·哈希算法
WolfGang00732115 小时前
代码随想录算法训练营Day32 | 518.零钱兑换II、377. 组合总和 Ⅳ、70. 爬楼梯(进阶)
算法