一、分支语句:人生就是无数个选择题
1. switch-case:代码界的自动售货机
你以为这是电话区号查询系统?不!这是switchの千层套路!
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int area_code;
printf("输入暗号(区号):");
scanf("%d", &area_code);
switch (area_code) // 像极了自动售货机的按钮
{
case 229: printf("呼叫奥尔巴尼警长!"); break; // break是停止投币键
case 404:
case 470: // case可以叠罗汉!
case 678:
case 770: printf("亚特兰大在召唤!");break;
default: printf("您拨打的区号需要充值智商"); // 保底选项
}
return 0;
}
重要知识点:
-
case后面必须是整型常量(别想塞个变量进去!) -
break是终止符,没有它就会开启代码瀑布流特效 -
default像备胎,永远在最后默默守候
2. if-else:薛定谔的条件判断
当你的颜值检测仪遇上数学题:
int main()
{
int num;
printf("输入你的颜值分数(1-999):");
scanf("%d", &num);
if (num > 0 && num < 10) // 初级颜狗
printf("青铜颜值");
else if (num >= 10 && num < 100) // 进阶选手
printf("白银段位");
else if (num >= 100 && num < 1000)
printf("钻石大神!");
else
printf("请重新连接地球服务器");
return 0;
}
避坑指南:
-
别写成
if(10 < num < 100)!C语言会露出关爱智障的微笑 -
把最容易满足的条件放在前面,就像把好吃的菜先吃掉
二、循环语句:代码健身房的永动机
1. for循环:精准的机械舞者
打印九九乘法表的终极奥义:
int main()
{
for(int i=1,j=1; i<=9; ) // 双变量控制
{
printf("%d❤%d=%d ", j, i, i*j);
if(i == j) // 对角线法则
{
printf("\n");
j++;
i = 1;
}
else i++;
}
return 0;
}
运行效果:
复制
1❤1=1 1❤2=2 2❤2=4 1❤3=3 2❤3=6 3❤3=9 ...(爱的魔力转圈圈)
2. while循环:倔强的马拉松选手
寻找最大值的哲学:
int main()
{
float max = 0, input;
do {
printf("输入数字(输入0结束):");
scanf("%f", &input);
if(input > max)
max = input; // 永远记住最好的那个
} while(input != 0); // 只要不是零就继续
printf("最高纪录:%.2f", max);
return 0;
}
程序员感悟:这像极了爱情——总是在比较中寻找,却容易错过当下
3. 死循环的诱惑
当你在代码中写下while(1)时:
电脑:你清醒一点!
你:不!我要永远运行下去!
老板:电费账单警告!
三、经典面试题の灵魂拷问
1. 那个让strlen怀疑人生的数组
char arr[1000];
for(int i=0; i<1000; i++){
arr[i] = -1 - i;
}
printf("%d", strlen(arr)); // 输出255?!
解密时刻:
-
char的取值范围是-128~127
-
当i=127时,arr[i]=-128
-
i=128时,arr[i]=1(溢出后重新轮回)
-
遇到0时strlen停止计数,所以结果是255
2. 欧几里得算法的浪漫
int a=48, b=18;
while(b != 0){ // 辗转相除
int temp = a % b;
a = b;
b = temp;
}
printf("最大公约数:%d", a); // 输出6
数学之美:这算法就像爱情,需要不断磨合才能找到共同点
四、终极の灵魂画板
用循环绘制星号金字塔:
for(int i=1; i<=5; i++){
for(int j=1; j<=5-i; j++) printf(" ");
for(int k=1; k<=2*i-1; k++) printf("*");
printf("\n");
}
输出:
*
***
*****
*******
*********
据说每个程序员心里都有一座金字塔,里面锁着无数个bug
课后作业:
-
用switch写个十二生肖查询器
-
尝试用三种循环各写一个素数判断程序
-
思考:如何用循环在控制台画出[金刚狼的爪印]?
(代码酱说:写十遍不如debug一遍,快去实践吧!)
1254




被折叠的 条评论
为什么被折叠?



