C语言编程实战:每日刷题 - day 1

🌈这里是say-fall分享,感兴趣欢迎三连与评论区留言
🔥专栏:《C语言从零开始到精通》
《C语言编程实战》
《数据结构与算法》
《小游戏与项目》
💪格言:做好你自己,你才能吸引更多人,并与他们共赢,这才是你最好的成长方式。
前言:
本系列博客将会更新一些每日的刷题代码
文章目录
- 前言:
- 正文:
- 1. 计算带余数
- 2. 判断2个数的大小
- 3. 三角形判断
- 4. 找出最大值
- 5. 寻找含9数字
- 6. 乘法表
- 7. X形图案
正文:
1. 计算带余数
- 计算带余数

#include <stdio.h>
int main() {int a = 0; // 用于存储被除数int b = 0; // 用于存储除数int c = 0; // 用于存储商int d = 0; // 用于存储余数// 读取输入的两个整数,%*c用于跳过中间的分隔符(如空格)scanf("%d%*c%d", &a, &b);// 计算商和余数并输出,格式为"商 余数"printf("%d %d\n", c = a / b, d = a % b);return 0;
}
2. 判断2个数的大小
- 判断2个数的大小

#include <stdio.h>int main()
{int num1 = 0; // 第一个待比较的数字int num2 = 0; // 第二个待比较的数字// 循环读取输入,支持多组测试数据(直到输入结束)while(scanf("%d%d", &num1, &num2) != EOF){if(num1 > num2)// 若num1大于num2,按格式输出"num1>num2"printf("%d>%d\n", num1, num2);else if(num1 < num2)// 若num1小于num2,按格式输出"num1<num2"printf("%d<%d\n", num1, num2);else// 若两数相等,按格式输出"num1=num2"printf("%d=%d\n", num1, num2);}return 0;
}
3. 三角形判断
- 三角形判断

#include <stdio.h>int main() {int a, b, c; // 分别表示三角形的三条边长// 多组输入处理while (scanf("%d %d %d", &a, &b, &c) != EOF) {// 三角形判定条件:任意两边之和大于第三边if (a + b > c && b + c > a && a + c > b) {// 等边三角形:三条边长度均相等if (a == b && b == c) {printf("Equilateral triangle!\n");}// 等腰三角形:至少两条边长度相等(排除等边情况)else if((a == b) || (b == c) || (a == c)){printf("Isosceles triangle!\n");} // 普通三角形:三条边长度均不相等elseprintf("Ordinary triangle!\n");} else {// 不满足三角形构成条件printf("Not a triangle!\n");}}return 0;
}
4. 找出最大值
- 求十个数中的最大值
int main()
{// 定义数组存储10个整数int arr[10];int i = 0;// 循环读取10个整数到数组中for (i = 0; i < 10; i++){scanf("%d", &arr[i]);}// 方法一:通过相邻元素交换找出最大值(类似冒泡排序思想)/*for (i = 0; i < 9; i++){if (arr[i] > arr[i + 1]){// 交换相邻元素,将较大值向后移动int tmp = arr[i];arr[i] = arr[i + 1];arr[i + 1] = tmp;}}*/// 方法二:假定初始最大值,逐个比较更新(推荐)int max = arr[0]; // 假设数组第一个元素为最大值for (i = 1; i < 10; i++) // 从第二个元素开始比较{if (arr[i] > max){max = arr[i]; // 若当前元素更大,则更新最大值}}printf("%d\n", max); // 输出最大值return 0;
}
相比起方法一来,方法二无需循环交换元素,时间复杂度为O(n),效率更高,推荐使用
5. 寻找含9数字
- 找到1-100里面含9的数字
int main()
{int count = 0; // 计数器,记录含9数字的个数int i = 0;// 遍历0到99(覆盖1到100的所有数字)for (i = 0; i < 100; i++){// 判断条件:十位为9(i >= 90)或个位为9(i % 10 == 9)if (i - 90 >= 0 || i % 10 == 9){count++; // 满足条件则计数加1}}printf("%d\n", count); // 输出含9数字的总个数return 0;
}
// 符合条件的数字:9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99
// 注意:99同时满足两个条件,但逻辑或(||)只会统计一次,结果正确
6. 乘法表
- 实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
例如:输入9,输出9 * 9口诀表,输出12,输出12 * 12的乘法口诀表。
#include <stdio.h>// 函数功能:打印n×n的乘法口诀表
void Mul_table(int n)
{int arr[1000]; // 存储1到n的整数int i = 0;// 填充数组:arr[i] = i + 1(即存储1,2,...,n)for (int i = 0; i < n; i++){arr[i] = i + 1;}// 外层循环控制行数(从1到n-1,因数组下标从0开始)for (int i = 1; i < n; i++){// 内层循环控制列数(从当前行号开始,避免重复打印)for (int j = i; j < n; j++){// 按格式输出"a * b = 乘积"printf("%d * %d = %d ", arr[i], arr[j], arr[i] * arr[j]);}printf("\n"); // 每行结束后换行}return;
}int main()
{Mul_table(11); // 调用函数,打印11×11的乘法口诀表return 0;
}
7. X形图案
- X形图案

#include <stdio.h>
int main() {int a; // X形图案的边长(行数和列数)// 多组输入处理while (scanf("%d", &a) != EOF) { // 外层循环控制行数(从1到a)for(int i = 1; i <= a; i++){// 内层循环控制列数(从1到a)for(int j = 1; j <= a; j++){// X形由两条对角线组成:// 1. 主对角线:行号等于列号(i == j)// 2. 副对角线:行号加列号等于边长加1(i + j == a + 1)if(i == j || i + j == (a + 1)){printf("*"); // 对角线位置打印"*"}else{printf(" "); // 非对角线位置打印空格}}printf("\n"); // 每行结束后换行}}return 0;
}
- 本节完…
