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们的私信,都是在鼓励我,支持我,我不会辜负你们的期望的,坚持写博客!!!

 

相关内容

热门资讯

AI做攻略、“双向奔赴”……国... 本文转自:人民网人民网记者 许维娜今年国庆假期,AI(人工智能)成了不少年轻人的“旅行搭子”。行前做...
合肥的这个“梗”, 翻篇了 社交平台的评论区,曾长期流传一句专属于合肥的黑色幽默。有人问合肥哪里好玩,本地网友半开玩笑地回复:合...
7万+旅游中高层都在的群,今天... 做旅游这行,资源卡位、渠道互通、项目落地——往往就差一个“对的机会”。我们的行业社群已聚集70,00...
一场帐篷音乐节,如何让井研从“... 帐篷音乐节现场封面新闻记者 周洪攀10月的研溪湿地,晚风里裹着柑橘的清甜与民谣的回响。夜幕降临,10...
白鹤翩翩落星愿,上海迪士尼度假... 10月9日,世界候鸟日前夕,上海迪士尼度假区星愿公园的湖风里多了一分白鹤的灵动。三座白鹤雕塑正式揭幕...
成都锦江边赏初秋枫叶飘飘 目前,成都锦江边国华街枫叶树红了。近年来,国华街附近的几条街都栽种了红枫树,是城区较集中看枫叶的点位...
GBTA:商务旅行正在复苏,但... 亚太正在成为全球商务旅行增长的重要引擎。在经历疫情后的快速反弹之后,全球商务旅行正在进入一个新的增长...
从景区焕新到节赛引流 邹城双节... 齐鲁网·闪电新闻10月9日讯 中秋、国庆“双节”假期,邹城市文化和旅游局提前谋划、周密部署,立足自身...
江山如此多娇 且看石楼今朝 金秋十月,黄河岸畔秋意盎然,丰收盛会喜迎国庆。本次石楼国庆文旅活动以“江山如此多娇,且看石楼今朝”为...
海南国庆假期接待游客475.4... 2026年国庆假期,海南接待游客475.40万人次,较2025年增长13.1%,较2024年增长15...