C语言刷题(5)——“C”
迪丽瓦拉
2025-05-29 06:32:23
0

各位CSDN的uu们你们好呀,今天,又到小雅兰的复习时间啦,那么,开始进入我们的正题吧


题目来源于牛客网

编程语言初学训练营_在线编程+题解_牛客题霸_牛客网


BC72 平均身高

BC74 HTTP状态码

BC75 数字三角形

BC76 公务员面试

BC77 有序序列插入一个数

BC78 筛选法求素数

BC79 图像相似度

BC80 登录验证

BC85 包含数字9的数

BC86 奇偶统计

BC87 统计成绩

BC89 密码验证

BC90 矩阵计算

BC92 逆序输出


#include 
int main()
{int i = 0;double score = 0.0;double sum = 0.0;for (i = 0; i < 5; i++){scanf("%lf", &score);sum += score;}printf("%.2lf\n", sum / 5);return 0;
}

 

#include 
int main()
{int s = 0;while (scanf("%d", &s) != EOF){switch (s){case 200:printf("OK\n");break;case 202:printf("Accepted\n");break;case 400:printf("Bad Request\n");break;case 403:printf("Forbidden\n");break;case 404:printf("Not Found\n");break;case 500:printf("Internal Server Error\n");break;case 502:printf("Bad Gateway\n");break;}}return 0;
}

1. 多组输入

2. 状态码比较多,且为整数,所以可以考虑用switch语句。

#include 
int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;//打印的行数for (i = 1; i <= n; i++){//打印一行的内容int j = 0;for (j = 1; j <= i; j++){printf("%d ", j);}printf("\n");}}return 0;
}

1. 多组输入

2. 分析清楚每行打印的内容就行了

#include 
int main()
{int i = 0;int sum = 0;int min = 100;//假设最小值是100int max = 0;//假设最大值是0int score = 0;for (i = 0; i < 7; i++){scanf("%d ", &score);//输入sum += score;//求和if (score > max)max = score;//求最大值if (score < min)min = score;//求最小值}printf("%.2f\n", (sum - min - max) / 5.0);return 0;
}

1. 多组输入

2. 一边输入,一边求和,一边求最大值最小值

3. 再算平均值

#include 
int main()
{int n = 0;int arr[50] = { 0 };int m = 0;//要插入的数据//输入数据scanf("%d", &n);int i = 0;for (i = 0; i < n; i++){scanf("%d", &arr[i]);}scanf("%d", &m);//处理for (i = n; i > 0; i--){if (arr[i - 1 ] > m){arr[i] = arr[i - 1];}else{arr[i] = m;break;}}//如果插入数字小于所有的数字if (i == 0){arr[i] = m;}//打印for (i = 0; i < n + 1; i++){printf("%d ", arr[i]);}return 0;
}

1. 多组输入

2. 从往前比较并一定数字找到合适的位置,就可以插入数字了,但是如果插入的数字比所有的元素都小,那就插入到第一个位置上。

#include 
//方法1:筛选法
int main()
{int n = 0;while (scanf("%d", &n)!=EOF){int arr[n + 1];//变长数组int i = 0;//初始化数组的内容为0-nfor (i = 0; i <= n; i++){arr[i] = i;}for (i = 2; i <= n; i++){int j = 0;for (j = i + 1; j <= n; j++){if (arr[j] % i == 0){arr[j] = 0;}}}int count = 0;for (i = 2; i <= n; i++){if (arr[i] != 0)printf("%d ", arr[i]);elsecount++;}printf("\n%d\n", count);}return 0;
}

 另一种方法:

#include 
//方法2:试除法
int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;int count = 0;for (i = 2; i <= n; i++){//判断i是否为素数//i——i-1之间的数字int j = 0;for (j = 2; j < i; j++){if (i % j == 0){count++;break;}}if (j == i){printf("%d ", j);}}printf("\n%d\n", count);}return 0;
}

封装函数:

#include 
//方法2:试除法
int is_prime(int n)
{int i = 0;for (i = 2; i < n; i++){if (n % i == 0)return 0;}return 1;
}
int main()
{int n = 0;//题目相当于打印n以内的素数while (scanf("%d", &n) != EOF){int i = 0;int count = 0;for (i = 2; i <= n; i++){if (is_prime(i) == 1){printf("%d ", i);}else{count++;}}printf("\n%d\n", count);}return 0;
}

#include 
int main()
{int m = 0;int n = 0;int a[100][100] = { 0 };int	b[100][100] = { 0 };scanf("%d %d", &m, &n);int i = 0;int j = 0;int count = 0.0;//输入数据for (i = 0; i < m; i++){for (j = 0; j < n; j++){scanf("%d", &a[i][j]);}}for (i = 0; i < m; i++){for (j = 0; j < n; j++){scanf("%d", &b[i][j]);}}//求相同元素的个数for (i = 0; i < m; i++){for (j = 0; j < n; j++){if (a[i][j] == b[i][j]){count++;}}}//求相速度注意乘以100printf("%.2f\n", 100.0 * count / (m * n));return 0;
}

1. 输入二维数组

2. 求两个二维数组的相同元素个数

3. 求百分比要注意*100.0,小数点后保留2位

此题目要用到字符串函数,刚好,小雅兰最近才写完这些知识点

字符函数和字符串函数(上)——“C”_认真学习的小雅兰.的博客-CSDN博客 

字符函数和字符串函数(下)——“C”_认真学习的小雅兰.的博客-CSDN博客

#include 
#include
int main()
{char name[20] = { 0 };char password[20] = { 0 };while (scanf("%s %s", name, password) != EOF){if (strcmp(name, "admin") == 0 && strcmp(password, "admin") == 0){printf("Login Success!\n");}else{printf("Login Fail!\n");}}return 0;
}

1. 多组输入

2. 两个字符串比较大小不能使用==,得使用strcmp函数,比较的是两个字符串中对应字符的ASCII码值。

#include 
int main()
{int i = 0;int count = 0;for (i = 1; i <= 2019; i++){//判断i是否包含9int t = i;while (t){if (t % 10 == 9){count++;break;}t = t / 10;}}printf("%d\n", count);return 0;
}

 1. 要判断一个数字是否包含9就看一下这个数字的某一位是否为9即可,只要某一位为9就停下里来。

 

#include 
int main()
{int n = 0;scanf("%d", &n);int i = 0;int odd = 0;//奇数的个数int even = 0;//偶数的个数for (i = 1; i <= n; i++){if (i % 2 == 1){odd++;}if (i % 2 == 0){even++;}}printf("%d %d\n", odd, even);return 0;
}

另一种写法:

#include 
int main()
{int n = 0;scanf("%d", &n);int i = 0;int odd = 0;//奇数的个数if (n % 2 == 0)odd = n / 2;//如果n是偶数,则奇数和偶数一样多elseodd = n / 2 + 1;//如果n是奇数,则奇数比偶数多1printf("%d %d\n", odd, n - odd);return 0;
}

#include 
int main()
{int n = 0;double sum = 0.0;double avg = 0.0;double min = 100.0;//假设的最小值double max = 0.0;//假设的最大值double score = 0.0;int i = 0;scanf("%d", &n);for (i = 0; i < n; i++){scanf("%lf", &score);sum += score;if (score > max)max = score;if (score < min)min = score;}avg = sum / n;printf("%.2lf %.2lf %.2lf\n", max, min, avg);return 0;
}

 1. 输入的同时就最大值最小值和求和,然后计算想要的结果。

 

#include 
#include 
int main()
{char password1[100] = { 0 };char password2[100] = { 0 };scanf("%s %s", password1, password2);if (strcmp(password1, password2) == 0)printf("same\n");elseprintf("different\n");return 0;
}

1. 密码是字符串,字符串的比较函数使用strcmp函数。  

 

#include 
int main()
{int m = 0;int n = 0;scanf("%d %d", &m, &n);int i = 0;int j = 0;int tmp = 0;int sum = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &tmp);if (tmp > 0)sum += tmp;}}printf("%d", sum);return 0;
}

1. 在输入的同时,将大于0的数求和。

#include 
int main()
{int arr[10] = { 0 };int i = 0;for (i = 0; i < 10; i++){scanf("%d", &arr[i]);}for (i = 9; i >= 0; i--){printf("%d ", arr[i]);}return 0;
}

 如果这个题不仅仅是逆序输出,而是要把数组中的数据逆序存放,又如何处理呢?


好啦,小雅兰今天的内容就到这里啦,继续加油呀,最近收到了许多uu们的私信,都是在鼓励我,支持我,我不会辜负你们的期望的,坚持写博客!!!

 

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...