洛谷题单:分支结构 题目分析及可运行代码(C语言)

📅 发布时间:2026/7/9 5:40:46 👁️ 浏览次数:
洛谷题单:分支结构 题目分析及可运行代码(C语言)
P2433​​​​​​【深基1-2】小学数学 N 合一https://www.luogu.com.cn/problem/P2433题目分析题目描述输入一个小学数学四则运算表达式计算并输出结果重点掌握 C 语言的基本输入输出、数据类型转换和简单表达式计算核心考点标准输入函数scanf()的使用读取数字和运算符分支结构if-else或switch-case根据运算符执行不同的计算逻辑浮点数类型double的使用处理除法运算标准输出函数printf()的格式化输出代码呈现#includestdio.h #includemath.h int main() { int T; double a,b,c,r,C,S,V,r1,r2,V1,V2; double pi3.141593; int d,e,f,m,n,M,i; scanf(%d,T); switch(T){ case 1: printf(I love Luogu!); break; case 2: printf(6 4); break; case 3: printf(3\n12\n2); break; case 4: printf(%.3lf,500.0/3.0); break; case 5: printf(%d,480/32); break; case 6: asqrt(6.0*6.09.0*9.0); printf(%.6g,a); break; case 7: printf(110\n); printf(90\n); printf(0); break; case 8: r5.0; C0.0; S0.0; V0.0; Spi*r*r; C2*pi*r; V4.0/3.0*pi*r*r*r; printf(%.6g\n%.6g\n%.6g,C,S,V); break; case 9: dm; while(d1){ dm; for(i0;i3;i){ if(d%2 !0){ d0; break;} dd-(d/21); } m; } printf (%d,m-1); break; case 10: printf(9); break; case 11: printf(%.6g,100/3.0); break; case 12: printf(%d\n,1M-A); printf(%c,A17); break; case 13: r14.0; r210.0; V0; V10; V20; a0; d0; V14.0/3.0*pi*r1*r1*r1; V24.0/3.0*pi*r2*r2*r2; VV1V2; while(a*a*aV){ a; } d(int)a; printf(%d,d-1); break; case 14: m1; n119; M0; Mm*n; while(M3500){ m; n--; Mm*n; } printf(%d,m); break; } return 0; }P5709【深基2.习6】Apples Prologue / 苹果和虫子https://www.luogu.com.cn/problem/P5709题目分析题目描述计算在给定时间内虫子能吃掉多少个苹果重点理解题意将问题转化为数学公式并用 C 语言实现核心考点变量定义和赋值使用int类型存储整数算术运算特别是除法和取模运算标准输入输出函数scanf()和printf()的使用代码呈现#includestdio.h int main() { int A, m, t, s; scanf(%d %d %d,m,t,s); if (t 0) { printf(0\n); return 0; }//t!0 else { A s / t; if (s % t0) { A A; } else { A 1; } } int B m - A; if (B 0) B0; printf(%d,B); return 0; }P5710​​​​​​【深基3.例2】数的性质https://www.luogu.com.cn/problem/P5710题目分析题目描述判断一个整数是否为偶数以及是否能同时被 3 和 5 整除重点掌握 C 语言的关系运算符和逻辑运算符核心考点关系运算符,!,,,,的使用逻辑运算符(与),||(或),!(非) 的使用if-else分支结构的嵌套代码呈现#includestdio.h int main() { int A0; scanf(%d,A); int a 0,b0,c 0,d 0; if (A % 2 0 A 4 A 12) { a 1; } if (A % 2 0 ||( A 4 A 12)) { b 1; } if ((A % 2 0 A 4 || A 12) || (A % 2 ! 0 A 4 A 12)) { c1; } if (A% 2 ! 0 A 4 || A12) { d1; } printf(%d %d %d %d\n,a,b,c,d); return 0; }P5711【深基3.例3】闰年判断https://www.luogu.com.cn/problem/P5711题目分析题目描述输入一个年份判断它是否为闰年重点理解闰年的判断规则并将其转化为 C 语言的逻辑表达式核心考点闰年判断规则能被 4 整除但不能被 100 整除或者能被 400 整除复杂逻辑表达式的构建和使用if-else if-else多分支结构代码呈现#includestdio.h int main() { int a 0, A 0; scanf(%d,A); if (A % 4 0 A % 100 ! 0 || A % 400 0) a 1; printf(%d,a); return 0; }P5712【深基3.例4】Appleshttps://www.luogu.com.cn/problem/P5712题目分析题目描述根据今天是星期几决定吃多少个苹果重点掌握switch-case多分支选择结构核心考点switch-case语句的语法包括case标签和break语句整型变量的使用存储星期几标准输入输出代码呈现#includestdio.h int main() { int a 0, x 0; scanf(%d,x); if (x 1) printf(Today, I ate 1 apple.\n); if (x 0) printf(Today, I ate 0 apple.\n); if (x 1) printf(Today, I ate %d apples.\n,x); return 0; }P5713【深基3.例5】洛谷团队系统https://www.luogu.com.cn/problem/P5713题目分析题目描述根据用户的团队等级判断其拥有的权限重点使用多分支结构处理不同的条件核心考点if-else if-else多分支结构的使用关系运算符和逻辑运算符的组合字符串或字符的输入与判断代码呈现#includestdio.h int main() { int A 0, B 0, n 0; scanf(%d,n); A 5 * n; B 3 * n 11; if (A B) printf(Local\n); else printf(Luogu\n); return 0; }P5714【深基3.例7】肥胖问题https://www.luogu.com.cn/problem/P5714题目分析题目描述输入身高和体重计算 BMI 指数并判断肥胖程度重点将现实问题转化为数学计算和逻辑判断核心考点浮点数运算计算 BMI 体重 (kg) / 身高 (m) 的平方多分支if-else if结构根据 BMI 范围输出不同结果数据类型转换确保计算精度代码呈现#includestdio.h int main() { double m 0, h 0; scanf(%lf %lf,m,h); double BMI m / (h * h); if (BMI 18.5) printf(Underweight); if (BMI 18.5 BMI 24) printf(Normal); if (BMI 24) printf(%.6g\nOverweight\n,BMI); return 0; }P5715【深基3.例8】三位数排序https://www.luogu.com.cn/problem/P5715题目分析题目描述输入三个整数按从小到大的顺序输出重点掌握基本的排序逻辑和条件判断核心考点多条件if-else嵌套比较三个数的大小变量交换的技巧使用临时变量或算术运算标准输出按要求格式打印结果代码呈现#includestdio.h int main() { int a,b,c,t; scanf(%d %d %d,a,b,c); if(ab){ ta;ab;bt; } if(ac){ ta;ac;ct; } if(bc){ tb;bc;ct; } printf(%d %d %d\n,a,b,c); return 0; }P5716【深基3.例9】月份天数https://www.luogu.com.cn/problem/P5716题目分析题目描述输入年份和月份输出该月的天数重点结合闰年判断和月份天数表处理复杂条件核心考点闰年判断逻辑的复用switch-case语句根据月份返回天数多分支结构的综合运用代码呈现#includestdio.h int main() { int y 0, m 0; scanf(%d %d,y,m); int arr[12] { 31,28,31,30,31,30,31,31,30,31,30,31 }; if (y % 4 0 y % 100 ! 0 || y % 400 0) { if (m 2) { printf(%d,29); return 0; } printf(%d,arr[m-1]); } else { printf(%d,arr[m-1]); } return 0; }P1085[NOIP 2004 普及组] 不高兴的津津https://www.luogu.com.cn/problem/P1085题目分析题目描述计算津津一周中哪一天最不高兴上课时间最长重点数组的遍历和最值查找核心考点一维数组的定义、初始化和遍历for循环的使用遍历数组元素查找数组中的最大值及其下标累加运算计算每天的总时间代码呈现#includestdio.h int main() { int class 0, outclass 0, max 0, sum 0; int i 0, day 0; for (i 0;i 7;i) { scanf(%d %d, class, outclass); sum class outclass; if (sum 8 sum max) { max sum; day i 1; } } printf(%d,day); return 0; }P1909[NOIP 2016 普及组] 买铅笔https://www.luogu.com.cn/problem/P1909题目分析题目描述计算购买足够数量铅笔所需的最少花费重点理解 “进一法” 取整并在 C 语言中实现核心考点整数除法和 “进一法” 的实现如(n pack - 1) / pack多组数据的输入和处理最小值的查找和比较代码呈现#includestdio.h int main() { int n 0; scanf(%d,n); int q 0, p 0; int a 0, P 0, min 0; for (int i 0;i 3;i) { scanf(%d %d, q, p); a n / q; if (n % q 0) { a a; } else { a 1; } P a * p; if (i 0) min P; else if (P min) min P; } printf(%d, min); return 0; }P5717【深基3.习8】三角形分类https://www.luogu.com.cn/problem/P5717题目分析题目描述输入三条边的长度判断能否构成三角形以及三角形的类型重点掌握三角形的构成条件和分类标准核心考点三角形构成条件任意两边之和大于第三边三角形类型判断等边、等腰、直角、普通多条件嵌套的if-else结构勾股定理的应用a² b² c²代码呈现#includestdio.h int main() { int a, b, c, t; scanf(%d %d %d, a, b, c); if (a b) { t a; a b; b t; } if (a c) { t a; a c; c t; } if (b c) { t b; b c; c t; } if (a b c) printf(Not triangle\n); else { if (a * a b * b c * c) printf(Right triangle\n); else if (a * a b * b c * c) printf(Acute triangle\n); else if (a * a b * b c * c) printf(Obtuse triangle\n); if (a b || a c || b c) printf(Isosceles triangle\n); if (a b b c) printf(Equilateral triangle\n); } }P1422小玉家的电费https://www.luogu.com.cn/problem/P1422题目分析题目描述根据用电量按照阶梯电价计算电费重点分段函数的实现核心考点分段函数的逻辑使用if-else if结构实现浮点数运算处理电价和总费用标准输出的格式化保留两位小数代码呈现#includestdio.h int main() { int a 0; double b 0; scanf(%d,a); if (a 150) { b a * 0.4463;; } if (a 150 a 400) { b 150*0.4463( a-150) * 0.4663; } if (a 400) { b 150*0.4463250*0.4663(a-400) * 0.5663; } printf(%.1lf,b); return 0; }P1424小鱼的航程改进版https://www.luogu.com.cn/problem/P1424题目分析题目描述计算小鱼在一段时间内的总航程考虑到它只在工作日游泳重点循环结构和条件判断的结合核心考点while或for循环模拟天数的流逝模运算%判断当天是星期几条件判断只在工作日累加航程循环变量的更新代码呈现#includestdio.h int main() { int x 0, n 0; int sum 0; scanf(%d %d, x, n); for (int i 0;i n;i) { if (x 6) { i; x; } if (x 7) { x 1; continue; } x; sum 250; } printf(%d, sum); return 0; }P1888三角函数https://www.luogu.com.cn/problem/P1888题目分析题目描述输入直角三角形的两条直角边求某个锐角的正弦、余弦和正切值重点数学库函数的使用核心考点头文件math.h的引入使用数学函数平方根函数sqrt()的使用计算斜边三角函数sin(),cos(),tan()的使用数据类型转换确保计算精度代码呈现#includestdio.h int main() { int a 0, b 0, c 0,t0; scanf(%d %d %d, a, b, c); if (a b) { t a; a b; b t; } if (a c) { t a; a c; c t; } if (b c) { t b; b c; c t; } for(int i1;ia/2;i){ if(a%i0c%i0){ ti; } } printf(%d/%d,c/t,a/t); return 0; }P1046[NOIP 2005 普及组] 陶陶摘苹果https://www.luogu.com.cn/problem/P1046题目分析题目描述计算陶陶能够摘到的苹果数量重点数组遍历和条件计数核心考点一维数组存储苹果高度for循环遍历数组条件判断if统计满足条件的元素个数代码呈现#includestdio.h int main() { int a 0, b 0; int arr[10]; int count 0; for (int i 0;i 10;i) { scanf(%d,arr[i]); } scanf(%d,b); int B0; Bb30; for (int i 0;i 10;i) { if (arr[i] B) count; } printf(%d,count); return 0; }P4414[COCI 2006/2007 #2] ABChttps://www.luogu.com.cn/problem/P4414题目分析题目描述输入三个整数按升序排序后根据输入的字符顺序输出对应位置的数重点排序和字符映射核心考点三个数的排序算法冒泡法或条件判断法字符数组或字符串的输入与遍历switch-case或数组下标实现字符到数字的映射代码呈现#includestdio.h void change(int* a, int* b) { int num; num *a; *a *b; *b num; } int main() { int a, b, c; char arr[10]; scanf(%d %d %d, a, b, c); scanf(%s, arr); if (a b) { change(a, b); if (b c) { change(b, c); if (a b) { change(a, b); } } } else if (a b) { if (b c) { change(c, b); if (a b){ change(a, b); } } } int i 0; for (i 0; i 3; i) { if (arr[i] A) { printf(%d, a); printf( ); } else if (arr[i] B) { printf(%d, b); printf( ); } else if (arr[i] C) { printf(%d, c); printf( ); } } return 0; }P1055[NOIP 2008 普及组] ISBN 号码https://www.luogu.com.cn/problem/P1055题目分析题目描述验证一个 ISBN 号码的校验码是否正确重点字符串处理和校验算法核心考点字符数组或字符串的输入处理包含分隔符的 ISBN字符到数字的转换0到9加权求和的校验算法模运算%计算校验码代码呈现# include stdio.h int main () { char arr[15]123; char arr1[12]0123456789X; int number0,cnt1,yu; scanf(%s,arr); for(int i0;i12;i) { if(arr[i]!-) { numbernumber(arr[i]-0)*cnt; cnt; } } if(arr1[number%11]arr[12]) { printf(Right); } else { arr[12]arr1[number%11]; printf(%s,arr); } return 0; }