目录
5、从键盘输入一个三位整数,判断它是否为水仙花数,水仙花数是指各位数的立方和等于该数本身的数,如153 = 1^3 +5^3 +3^3;
1、程序设计
1.1、选择结构
C语言的选择结构主要用if语句、if...else语句以及switch语句来实现。
1、if语句可以根据一个条件是否满足来决定是否执行某段代码
2、if...else语句是在条件满足时执行一段代码,不满足时执行另一段代码
3、switch语句是根据变量的值来选择执行哪个代码块
#include <stdio.h> int main() { int a; scanf("%d",&a); // if 语句 if(a == 0) // 如果a等于0 { printf("a = 0\n"); // 输出 a=0; } // if...else...语句 if(a > 1) { printf("a 大于 1\n"); } else { printf("a 不大于 1\n"); } // switch 语句 switch (a) { case 1: printf("a = 1\n"); break; case 2: printf("a = 2\n"); break; default: break; } }
1.2、循环语句
C语言的循环语句包括while循环、do-while循环和for循环。
1、while循环先判断条件再执行循环体;
while循环语法格式:
while(条件){ 循环体; }while(a != 0) { printf("%d\t",a); a--; } // 输出结果:10 9 8 7 6 5 4 3 2 1
2、do-while循环先执行循环体再判断条件,至少执行一次;
do { 循环体; } while (条件表达式);int a = 10; do{ printf("%d\t",a); a--; } while(a != 0) // 输出结果:10 9 8 7 6 5 4 3 2 1
3、for循环在循环前初始化、条件判断和迭代操作都在一个语句中完成。
for (初始化表达式; 条件表达式; 迭代表达式) { // 循环体 }for(int i = 0; i < 10; i++) { printf("%d\t",i); } // 输出结果: 0 1 2 3 4 5 6 7 8 9
1.3、break(退出)与continue(继续)
-
break关键字只能用于循环(while for do...while)和switch语句中,表示结束循环或者跳出switch语句
-
break关键字只能跳出最近一层的循环,也就是说,如果有多重循环,只能跳出最靠近break语句那层循环
-
break关键字不能单独用于 if语句中,除非if语句外面包含了循环
switch (a) { case 1: printf("a = 1\n"); break; // 跳出 switch 语句 case 2: printf("a = 2\n"); break; // 跳出 switch 语句 default: break; // 跳出 switch 语句 } int n = 10; while(1) { n--; if(n == 0) break; // 跳出当层 while 循环体 }
-
continue关键字只能用于循环体中(while do...while for),用于提前结束当前循环体后,又从最近一层循环体开始执行
-
continue关键字不能 单独用于 if语句或者switch 语句中,除非外面包含了循环
for(int i = 0; i < 10; i++) { if(i%2 == 0) continue; // 跳过所有能被2整除的数 printf("%d\t",i); }
1.4、goto语句
goto语句语法格式:
goto 语句标号;//程序会直接跳转到语句标号的地方执行 语句标号:
-
goto语句的无条件跳转不利于程序的可读性,一般不建议使用,linux内核常用
-
goto语句常被用在程序的错误处理中
int main() { printf("%d\n", __LINE__); // 打印第3行 // 无条件跳转到label处 goto label; printf("%d\n", __LINE__); // 打印第7行,此处被略过 label: printf("%d\n", __LINE__); // 打印第9行 }
(突然发现写的越来越水了,救命,所以,加点例题吧。。。)
2、例题
1、求解1~100的和
1、用while循环写 #include <stdio.h> int main(int argc, char const *argv[]) { int sum = 0; int i = 0; while(i != 100) { i++; sum += i; } printf("%d\n",sum); return 0; } 2、用do...while...循环写 #include <stdio.h> int main(int argc, char const *argv[]) { int sum = 0; int i = 0; do { i++; sum += i; }while(i != 100); printf("%d\n",sum); return 0; } 3、用for循环写 #include <stdio.h> int main(int argc, char const *argv[]) { int sum = 0; for(int i = 0; i <= 100; i++) { sum += i; } printf("%d\n",sum); return 0; }
2、从键盘上输入一个学生的成绩,判断该学生成绩等级:
成绩在90~100,等级为 A;
成绩在80~89,等级为B;
成绩在70~79,等级为C;
成绩在60~69,等级为D;
成绩在0~59,等级为E;
1、用switch语句写 #include <stdio.h> int main(int argc, char const *argv[]) { int score; char grade; scanf("%d",&score); score /= 10; switch (score) { case 10: case 9: grade = 'A'; break; case 8: grade = 'B'; break; case 7: grade = 'C'; break; case 6: grade = 'D'; break; default: grade = 'E'; break; } printf("%c\n",grade); return 0; } 2、用if..else if..else..语句写 #include <stdio.h> int main(int argc, char const *argv[]) { int score; char grade; scanf("%d",&score); if(score >= 90 && score <= 100) { grade = 'A'; } else if(score >=80 && score < 90) { grade = 'B'; } else if(score >=70 && score < 80) { grade = 'C'; } else if(score >=60 && score < 70) { grade = 'D'; } else { grade = 'E'; } printf("%c\n",grade); return 0; }
3、完成两个数的四则运算
1、用switch语句写 #include <stdio.h> int main(int argc, char const *argv[]) { float num1,num2; char choose; scanf("%f%c%f",&num1,&choose,&num2); switch (choose) { case '+': printf("%g\n",num1+num2); break; case '-': printf("%g\n",num1-num2); break; case '*': printf("%g\n",num1*num2); break; case '/': printf("%g\n",num1/num2); break; default: printf("输入错误\n"); break; } return 0; } 2、用if..else if..else..语句写 #include <stdio.h> int main(int argc, char const *argv[]) { float num1,num2; char choose; scanf("%f%c%f",&num1,&choose,&num2); if(choose == '+') { printf("%g\n",num1+num2); } else if(choose == '-') { printf("%g\n",num1-num2); } else if(choose == '*') { printf("%g\n",num1*num2); } else if(choose == '/') { printf("%g\n",num1/num2); } else { printf("输入错误\n"); } return 0; }
4、输入整数a和整数b,将a<b时将其反序
交换数值的三种方法 1、c #include <stdio.h> int main(int argc, char const *argv[]) { int a,b; scanf("%d%d",&a,&b); if(a < b) { int temp = a; a = b; b = temp; } printf("a = %d, b = %d\n",a,b); return 0; } 2、采用加减 #include <stdio.h> int main(int argc, char const *argv[]) { int a,b; scanf("%d%d",&a,&b); if(a < b) { a = a + b; b = a - b; a = a - b; } printf("a = %d, b = %d\n",a,b); return 0; } 3、用异或 #include <stdio.h> int main(int argc, char const *argv[]) { int a,b; scanf("%d%d",&a,&b); if(a < b) { a = a ^ b; b = a ^ b; a = a ^ b; } printf("a = %d, b = %d\n",a,b); return 0; }
5、从键盘输入一个三位整数,判断它是否为水仙花数,水仙花数是指各位数的立方和等于该数本身的数,如153 = 1^3 +5^3 +3^3;
// 用到了if语句 #include <stdio.h> int main(int argc, char const *argv[]) { int num; printf("请输入三位整数:\n"); scanf("%d",&num); int a = num % 10; // 个位 int b = num / 10 % 10; // 十位 int c = num / 100; // 百位 if(num == (a*a*a + b*b*b + c*c*c)) { printf("该数为水仙花数\n"); } return 0 }标签:语句,break,int,else,C语言,学习,while,printf,第二章 From: https://blog.csdn.net/m0_65146517/article/details/142926638