欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > C语言每日一练——day_8

C语言每日一练——day_8

2025/3/21 0:49:58 来源:https://blog.csdn.net/2401_88433210/article/details/146278833  浏览:    关键词:C语言每日一练——day_8

引言

        针对初学者,每日练习几个题,快速上手C语言。第八天。(连续更新中)

        采用在线OJ的形式

什么是在线OJ?

        在线判题系统(英语:Online Judge,缩写OJ)是一种在编程竞赛中用来测试参赛程序的在线系统,也可以用于平时的练习。

        详细内容可以看一下这篇博客:关于C/C++语言的初学者在哪刷题,怎么刷题-CSDN博客https://blog.csdn.net/2401_88433210/article/details/146056171?spm=1011.2415.3001.10575&sharefrom=mp_manage_link 建议从第一天开始做,前面讲了的知识点后面只是会提一下。有不懂的写再评论区里

 1.平均身高

        点进去直接做题:平均身高_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/b0e489a749f448e2b37f26ef56a76e58?tpId=107&&tqId=33353&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

参考代码:

#include <stdio.h>//计算平均值
float ave(float arr[])
{float sum = 0.0;int i = 0;while(i < 5){sum += arr[i]; //身高相加i++;}  return sum/5.0;
}int main()
{float arr[5] = {0};int i = 0;for(i = 0; i < 5; i++){scanf("%f ", &arr[i]);  //输入身高}float aver = ave(arr);printf("%.2f", aver);return 0;
}

解析:不想多说什么,不会的就把前几天的题再做一下吧;

2.HTTP状态码

        点进去直接做题:HTTP状态码_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/99dba043761e43c2a6f931e2c5c247c7?tpId=107&&tqId=33355&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

 参考代码:

#include <stdio.h>
int main()
{
int a;
while(~scanf("%d",&a))
{getchar();switch(a){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");}
}
return 0;
}

解析:1. 多组输入

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

3.数字三角形

        点进去直接做题:

数字三角形_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/804a22929b844e6b9379a5e90b5e2197?tpId=107&&tqId=33356&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>int main()
{int n = 0;//多组输入while (~scanf("%d", &n)){//控制行数for (int i = 1; i <= n; i++){//打印一行for (int j = 1; j <= i; j++){printf("%d ", j);}printf("\n");}}return 0;
}

 解析:

        1. 多组输入

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

4.公务员面试

        点进去直接做题:
公务员面试_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/f3a134908d5b41869f14f58307008a97?tpId=107&&tqId=33357&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>
int main()
{int a, max = 0, small = 100, sum = 0, count = 0;while (scanf("%d", &a) != EOF){if (a > max)//判定最高分{max = a;}if (a < small)//判定最低分{small = a;}sum += a;count++;//计数器if (count == 7)//计数器=7时代表一组的分数好了可以进行计算{printf("%.2f\n", (sum - max - small) / 5.0);count = 0;//重置max = 0;//重置small = 100;//重置sum = 0;//重置}}return 0;
}

 解析:

        学习这种判断最高分和最低分的技巧

5.有序序列插入一个数        

        点进去直接做题:有序序列插入一个数_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/74486aec6fe14d44b509efabf265ee66?tpId=107&&tqId=33358&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:


#include <stdio.h>
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. 从往前比较并一定数字找到合适的位置,就可以插入数字了,但是如果插入的数字比所有的元素都 小,那就插入到第一个位置上。 

6.筛选法求素数

        点进去直接做题:筛选法求素数_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a?tpId=107&&tqId=33359&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>//方法1:筛选法
int main(){int n = 0;while (~scanf("%d", &n)){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;}//方法2:试除法
int is_prime(int n)
{int i = 0;for(i=2; i<n; i++) //可以优化一下:for(i = 2; i < n / i; 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++) // for(i = 2; i < i / n; i++) 这样也可以而且优化了时间{if(is_prime(i)==1){printf("%d ", i);}else{count++;}}printf("\n%d\n", count);}return 0;
}

解析:

        学习怎么判断一个数是不是素数

7.图像相似度

        点进去直接做题:图像相似度_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/f2952ee3bb5c48a9be6c261e29dd1092?tpId=107&&tqId=33360&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking

参考代码:

#include <stdio.h>int main()
{int m = 0; //表示行数int n = 0; //表示列数int arr1[100][100] = { 0 };int arr2[100][100] = { 0 };//输入scanf("%d %d", &m, &n);for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){scanf("%d ", &arr1[i][j]);}}for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){scanf("%d ", &arr2[i][j]);}}int cnt = 0; //表示相同的个数//比较for (int i = 0; i < m; i++){for (int j = 0; j < n; j++){if (arr1[i][j] == arr2[i][j]){cnt++;}}}//输出printf("%.2f\n", 100.0 * cnt / (m * n));return 0;
}

解析:

        1. 输入二维数组

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

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

8.登录验证

        点进去直接做题:登录验证_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/799daf76369c4fb1a2e2d56f885225ae?tpId=107&&tqId=33361&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include<stdio.h>int main()
{char name[20] = {0};char passage[20] = {0};while(scanf("%s %s", name, passage) != EOF){if (strcmp(name, "admin") == 0 && strcmp(passage, "admin") == 0){printf("Login Success!");}else{printf("Login Fail!");}}return 0;
}

解析:

        1. 多组输入

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

        3.当strcmp函数返回值   等于0时,表示两个字符串相等。

9.包含数字9的数

        点进去直接做题:

包含数字9的数_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/0948f4f3344c452f843afd3585dd0f8d?tpId=107&&tqId=33366&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

#include <stdio.h>int main()
{int cnt = 0;for (int i = 1; i <= 2019; i++){int m = i;while (m > 0){if (m % 10 == 9){cnt++;break;}else{m /= 10;}}}//输出printf("%d\n", cnt);return 0;
}

解析:

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

10.奇偶统计             

        点进去直接做题:      奇偶统计_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/04de8eb0ecab426fa6be3ae99af17210?tpId=107&&tqId=33367&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:

//代码1#include <stdio.h>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++;}printf("%d %d\n", odd, n-odd);return 0;}//代码2#include <stdio.h>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;}

解析: 1. 代码1就是统计技术的个数,算出偶数的个数。

                 2. 代码2是根据数字的个数推算。

                                   

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词