
🌈这里是say-fall分享,感兴趣欢迎三连与评论区留言
🔥专栏:《C语言从零开始到精通》《C语言编程实战》《数据结构与算法》
《小游戏与项目》
💪格言:做好你自己,你才能吸引更多人,并与他们共赢,这才是你最好的成长方式。
前言:
本系列博客将会更新一些每日的刷题代码
文章目录
- 前言:
- 正文:
-
- [1. 计算带余数](#1. 计算带余数)
- [2. 判断2个数的大小](#2. 判断2个数的大小)
- [3. 三角形判断](#3. 三角形判断)
- [4. 找出最大值](#4. 找出最大值)
- [5. 寻找含9数字](#5. 寻找含9数字)
- [6. 乘法表](#6. 乘法表)
- [7. X形图案](#7. X形图案)
正文:
1. 计算带余数
c
#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个数的大小
c
#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. 三角形判断
c
#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");
}
// 普通三角形:三条边长度均不相等
else
printf("Ordinary triangle!\n");
} else {
// 不满足三角形构成条件
printf("Not a triangle!\n");
}
}
return 0;
}
4. 找出最大值
- 求十个数中的最大值
c
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的数字
c
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的乘法口诀表。
c
#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形图案
c
#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;
}
- 本节完...



