一、if语句
1、判断正负数
#include <stdio.h> int main() { int val = 0; printf("请输入一个数字:"); scanf("%d", &val); /*if (val >= 0) { printf("非负数\n"); } else { printf("负数\n"); }*/ /* * val > 0 * 显示正数 **************************** * val < 0 * 显示负数 **************************** * !val * 显示零 * */ if (val > 0) { printf("正数\n"); } else if (val < 0) { printf("负数\n"); } else { printf("零\n"); } return 0; }
2、判断奇偶数
#include <stdio.h> int main() { int val = 0; printf("请输入一个数字:"); scanf("%d", &val); /* * val < 0 * 显示负数 **************************************** * val >= 0 && (val & 1) * 显示奇数 **************************************** * val >= 0 && !(val & 1) * 显示偶数 * */ if (val < 0) { printf("负数\n"); } else if (val & 1) { printf("奇数\n"); } else if (!(val & 1)) { printf("偶数\n"); } return 0; }
3、判断最小数
#include <stdio.h> int main() { int val = 0, val1 = 0, val2 = 0; printf("请输入三个数字:"); scanf("%d%d%d", &val, &val1, &val2); if (val > val1) { if (val1 > val2) { printf("最小数字是%d\n", val2); } else { printf("最小数字是%d\n", val1); } } else { if (val > val2) { printf("最小数字是%d\n", val2); } else { printf("最小数字是%d\n", val); } } return 0; }
4、判断年月日
int main() { int year = 0, month = 0; printf("请输入年和月:"); scanf("%d%d", &year, &month); /* * 1,3,5,7,8,10,12 * 显示31天 ************************************ * 4,6,9,11 * 显示30天 ************************************ * 2 * 区分平年和闰年 * */ if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { printf("一共有31天\n"); } else if (month == 4 || month == 6 || month == 9 || month == 11) { printf("一共有30天\n"); } else if (month == 2) { /* * 闰年 * 显示29天 ********************************* * 平年 * 显示28天 * */ if ((!(year & 3)/*后两个二进制数位的内容都是0*/ && (year % 100)) || !(year % 400)) { printf("一共有29天\n"); } else { printf("一共有28天\n"); } } return 0; }
二、switch语句
#include <stdio.h> int main() { int season = 0; printf("请输入代表季节的数字:"); scanf("%d", &season); //计算机用小括号里的数字和大括号里 //列举出的每个数字依次做对比,如果 //和某个数字相等就执行这个数字后面 //的语句 switch (season) { case 0: printf("春天\n"); break; case 1: printf("夏天\n"); break; case 2: printf("秋天\n"); break; case 3: printf("冬天\n"); break; default: printf("不认识的数字\n"); break; } return 0; }
三、for循环
#include <stdio.h> int main() { int num = 0; //循环变量 for (num = 1/*开始数字*/;num <= 5/*循环变量和结束数字之间的关系*/;num++/*每次循环变量的变化规律*/) { printf("%d ", num); } printf("\n"); return 0; } 运行结果: 1 2 3 4 5
#include <stdio.h> int main() { int min = 0, max = 0, num = 0, sum = 0; printf("请输入两个数字:"); scanf("%d%d", &min, &max); //调整两个变量的内容,让max里的数字大, //min里的数字小 if (max < min) { //负责处理max变量内容小的情况 //只需要把max和min的内容交换一下就可以了 min ^= max; max ^= min; min ^= max; } for (num = min;num <= max;num++) { //循环变量从小到大依次代表min和max //之间的所有数字 sum += num; //把循环变量代表的每个数字加到sum变量里去 } printf("求和结果是%d\n", sum); return 0; } 运行结果: 请输入两个数字:15 13 求和结果是42
鸡兔同笼,一共有40个头,100条腿
#include <stdio.h> int main() { int num = 0; for (num = 0;num <= 40;num++) { //把0到40之间的每个数字作为兔子 //的数量测试一遍 if (4 * num + 2 * (40 - num) == 100) { //循环变量num就是兔子的数量 printf("兔子有%d只,鸡有%d只\n", num, 40 - num); break; } } printf("num是%d\n", num); return 0; }
for嵌套语句
#include <stdio.h> int main() { int num = 0, num1 = 0; for (num = 1;num <= 5;num++) { //循环变量代表每行的行号 for (num1 = 5;num1 >= num;num1--) { //循环变量代表每次要显示的数字 printf("%d", num1); } printf("\n"); //每次行号变化之前显示换行 } return 0; } 运行结果: 54321 5432 543 54 5
四、continue语句,结束本次循环,继续下次循环
#include <stdio.h> int main() { int num = 0; for (num = 1;num <= 5;num++) { printf("%d\n", num); if (num == 3) { continue; } printf("%d\n", 10 + num); } return 0; }
五、随机数
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(0)); printf("%d\n", rand()); printf("%d\n", rand()); printf("%d\n", rand()); return 0; }
六、while循环
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int val = 0, guess = 0; srand(time(0)); //val = rand() % 100; while (val != guess/*没猜对的时候应该继续猜*/) { printf("请猜一个数字:"); scanf("%d", &guess); if (guess > val) { printf("猜大了\n"); } else if (guess < val) { printf("猜小了\n"); } else { printf("猜对了\n"); } } return 0; } #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int val = 0, guess = 0; srand(time(0)); //val = rand() % 100; do { printf("请猜一个数字:"); scanf("%d", &guess); if (guess > val) { printf("猜大了\n"); } else if (guess < val) { printf("猜小了\n"); } else { printf("猜对了\n"); } } while (val != guess); return 0; }
求公约数
#include <stdio.h> int main() { int val = 0, val1 = 0, tmp = 0; printf("请输入两个数字:"); scanf("%d%d", &val, &val1); while (val % val1/*余数不是0表示两个数字之间没有整数倍关系*/) { tmp = val % val1; //计算两个数字之间的余数并记录下来 val = val1; //把比较大的数字换成原来比较小的数字 val1 = tmp; //把比较小的数字换成余数 } printf("最大公约数是%d\n", val1); return 0; }