作者主页:paper jie的博客_CSDN博客-C语言,算法详解领域博主
本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。
本文录入于《C语言-语法篇》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将C语言基础知识一网打尽,希望可以帮到读者们哦。
其他专栏:《C语言》《算法详解》《C语言系统详解》
内容分享:本期将用C语言对牛客网刷题的语法篇分支控制行进行具体讲解,各位看官姥爷快搬好小板凳坐好叭。
-------- 不要998,不要98,只要一键三连,三连买不了吃亏,买不了上当
目录
题目链接
第一题
第二题
第三题
第四题
第五题
第六题
第七题
第八题
第九题
第十题
第十一题
第十二题
第十三题
第十四题
第十五题
第十六题
第十七题
第十八题
题目链接
四季_牛客题霸_牛客网 (nowcoder.com)
健康评估_牛客题霸_牛客网 (nowcoder.com)
小乐乐找最大数_牛客题霸_牛客网 (nowcoder.com)
判断是不是字母_牛客题霸_牛客网 (nowcoder.com)
牛牛的二三七整除_牛客题霸_牛客网 (nowcoder.com)
统计数据正负个数_牛客题霸_牛客网 (nowcoder.com)
网购_牛客题霸_牛客网 (nowcoder.com)
牛牛的快递_牛客题霸_牛客网 (nowcoder.com)
牛牛的通勤_牛客题霸_牛客网 (nowcoder.com)
牛牛的金币_牛客题霸_牛客网 (nowcoder.com)
牛牛的一周_牛客题霸_牛客网 (nowcoder.com)
HTTP状态码_牛客题霸_牛客网 (nowcoder.com)
计算单位阶跃函数_牛客题霸_牛客网 (nowcoder.com)
三角形判断_牛客题霸_牛客网 (nowcoder.com)
牛牛的计划_牛客题霸_牛客网 (nowcoder.com)
计算一元二次方程_牛客题霸_牛客网 (nowcoder.com)
获得月份天数_牛客题霸_牛客网 (nowcoder.com)
小乐乐是否被叫家长_牛客题霸_牛客网 (nowcoder.com)
简单计算器_牛客题霸_牛客网 (nowcoder.com)
第一题
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
//month里面就是月份
int month = n%100;
//使用switch语句
switch(month)
{
//3-5
case 3:
case 4:
case 5:
printf("spring\n");
break;
//6-8
case 6:
case 7:
case 8:
printf("summer\n");
break;
//9-11
case 9:
case 10:
case 11:
printf("autumn\n");
break;
//12-2
case 12:
case 1:
case 2:
printf("winer\n");
break;
default:
break;
}
return 0;
}
第二题
#include <stdio.h>
int main()
{ //身高体重有小数用float类型
float height = 0.0;
float weight = 0.0;
//float 输入用%f
scanf("%f%f", &weight, &height);
//BMI 计算公式 体重/(身高^2)
float BMI = weight/(height*height);
//用if else 判断
if(BMI<=23.9 && BMI>=18.5)
printf("Normal\n");
else
printf("Abnormal\n");
return 0;
}
第三题
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
int d = 0;
scanf("%d%d%d%d", &a, &b, &c, &d);
//三目操作符:
// a是不是大于b n 是 a n 是 b
int n = a>b?a:b;
//同上
int m = c>d?c:d;
printf("%d\n", n>m?n:m);
}
第四题
#include <stdio.h>
int main()
{
char n = 0;
//多组输入
while(scanf("%c", &n)!=EOF)
{
//getchar可以将回车抵消
getchar();
//这里是字母的ASCII码值
if((n>=65&&n<=90)||(n>=97&&n<=122))
{
printf("%c is an alphabet.\n", n);
}
else {
printf("%c is not an alphabet.\n", n );
}
}
}
第五题
#include <stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
int i = 0;
//将2 3 7这些除数全部放到数组中
int arr[3] = {2,3,7};
//计数器判断有没有能整数的元素
int count = 0;
//遍历数组中的元素
for(i=0; i<3; i++)
{
//能整数就打印 且count加一
if(a%arr[i]==0)
{
printf("%d ", arr[i]);
count++;
}
}
//如果count没变化就打印n
if(count==0)
{
printf("n");
}
return 0;
}
第六题
#include <stdio.h>
int main()
{
int i = 0;
int Z = 0;
int F = 0;
int arr[10] = {0};
//将输入的数放入arr数组中
for(i=0; i<10; i++)
{
scanf("%d", &arr[i]);
}
//遍历数组
for(i=0; i<10; i++)
{
//大于0 z++
if(arr[i]>0)
Z++;
//小于0 f++
else if(arr[i]<0)
F++;
}
printf("positive:%d\n", Z);
printf("negative:%d\n", F);
}
第七题
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
//走路的时间
int s1 = n;
//打车的时间
int s2 = n/10 + 10;
//不能除尽再加一秒
if(n%10!=0)
s2+=1;
//判断
if(s1>s2)
printf("v\n");
else
printf("w\n");
return 0;
}
第八题
#include <stdio.h>
//通过题意 我们知道:
//横坐标相等 就判断纵坐标
//纵坐标相等 就判读横坐标
int main()
{
int x = 0;
int y = 0;
scanf("%d%d", &x, &y);
int x1 = 0;
int y1 = 0;
scanf("%d%d", &x1, &y1);
//横坐标相等
if(x==x1)
{
if(y1>y)
{
printf("u\n");
}
else {
printf("d\n");
}
}
//纵坐标相等
if(y==y1)
{
if(x1>x)
{
printf("r\n");
}
else {
printf("i\n");
}
}
return 0;
}
第九题
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
//n%7 == 1 2 3 4 5 6 7
switch (n % 7)
{
case 1:
printf("Monday\n");
break;
case 2:
printf("Tuesday\n");
break;
case 3:
printf("Wednesday\n");
break;
case 4:
printf("Thursday\n");
break;
case 5:
printf("Friday\n");
break;
case 6:
printf("Saturday\n");
break;
case 0:
printf("Sunday\n");
break;
}
return 0;
}
第十题
#include <stdio.h>
int main()
{
int n = 0;
while(scanf("%d", &n)!= EOF)
{
switch(n)
{
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;
}
第十一题
#include <stdio.h>
int main()
{
int n = 0;
//多组输入
while(scanf("%d", &n)!=EOF)
{
//大于0
if(n>0)
printf("1\n");
//等于0
else if(n==0)
printf("0.5\n");
//小于0
else
printf("0");
}
}
第十二题
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
//多组输入
while(scanf("%d%d%d", &a, &b, &c)!=EOF)
{
//两边之和大于第三边
if(a+b>c && a+c>b && b+c>a)
{
//两边相等
if(a==b || b==c || a==c)
{
//三边相等
if(a==b&&b==c&&a==c)
{
printf("Equilateral triangle!\n");
}
else {
printf("Isosceles triangle!\n");
}
}
else
{
printf("Ordinary triangle!\n");
}
}
else
{
printf("Not a triangle!\n");
}
}
return 0;
}
第十三题
#include <stdio.h>
int main()
{
int y1 = 0;
int m1 = 0;
int d1 = 0;
int y = 0;
int m = 0;
int d = 0;
//学习时间
scanf("%d%d%d", &y, &m, &d);
//查询时间
scanf("%d%d%d", &y1, &m1, &d1);
//月和天数相加 *100是为了让月份比天数大
int a = m*100+d;
int b = m1*100+d1;
//比较
//注意: 年份大了小了其他什么变都没用
if(y<y1)
printf("yes\n");
else if(y==y1)
{
if(b>=a)
printf("yes\n");
else
printf("no\n");;
}
else
printf("no\n");
}
第十四题
#include <stdio.h>
#include <math.h>
int main()
{
float a = 0.0;
float b = 0.0;
float c = 0.0;
//多组输入
while(scanf("%f%f%f", &a, &b, &c)!=EOF)
{
//平方根
float v = b*b - 4*a*c;
//没有平方根
if(a==0)
{
printf("Not quadratic equation\n");
}
else
{
//平方根大于0
if(v>0)
{
float x1 = ((-b)-sqrt(v))/(2*a);
float x2 = ((-b)+sqrt(v))/(2*a);
printf("x1=%.2f;x2=%.2f\n", x1, x2);
}
//平方根小于0
else if(v<0)
{
float n = -b/(2*a);
float m =sqrt(-v)/(2*a);
printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n", n, m, n, m);
}
//平方根等于0
//这里要注意当结果等于0时直接用-b是不行的,这样子会得到-0.00
//所以我们要-b+0
else {
if((-b+sqrt(v))==0)
printf("x1=x2=0.00");
else
printf("x1=x2=%.2f\n", (-b+sqrt(v))/(2*a));
}
}
}
return 0;
}
第十五题
#include <stdio.h>
int main()
{
int year = 0;
int month = 0;
while(scanf("%d%d", &year, &month)!=EOF)
{
//我们用数组放天数 1 2 3 4 5 6 7 8 9 10 11 12
int arr[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
//判断闰年 4年一闰 100年不闰 400年在闰
//这时2月就是29天
if(((year%4==0&&year%100!=0) || (year%400==0))&&month==2)
{
arr[month]+=1;
printf("%d\n", arr[month]);
}
else {
printf("%d\n", arr[month]);
}
}
return 0;
}
第十六题
#include <stdio.h>
int main()
{
int math = 0;
int chinese = 0;
int english = 0;
//输入
scanf("%d%d%d", &math, &chinese, &english);
//成绩之和
int sum = math + chinese +english;
//判断平均数是不是大于等于60
if(sum/3.0<60)
printf("YES\n");
else
printf("NO\n");
return 0;
}
第十七题
#include <stdio.h>
int main()
{
//生产一个数组 存放输入的值
char ch[20] = {0};
//输入
scanf("%s", ch);
int i = 0;
int j = 1;
int n = 0;
//用循环计算识别码中数字乘积之和
for(int i = 0; i<11; i++)
{
if(ch[i]!='-')
{
n += (ch[i]-'0')*j;
j+=1;
}
}
//m是识别码
int m = n%11;
//判断识别码是否正确
if(m==ch[12]-'0' ||(m==10 && ch[12]=='X'))
{
printf("Right\n");
}
//不正确
else
{
//m==10时
if(m==10)
{
//用循环打印字符 最后一个不打印
for(i=0; i<12; i++)
{
printf("%c", ch[i]);
}
//这里打印需要的值
printf("X");
}
else
{
for(i=0; i<12; i++)
{
printf("%c", ch[i]);
}
printf("%d", m);
}
}
}
第十八题
#include <stdio.h>
int main()
{
//用浮点数存放两个操作数
double a = 0;
double b = 0;
char ch = 0;
//多组输入
while(scanf("%lf%c%lf", &a, &ch, &b)!=EOF)
{
//判断是否+-*/
if(ch!='+'&&ch!='-'&&ch!='*'&&ch!='/')
printf("Invalid operation!\n");
else
{
//进入相应的计算
if(ch=='+')
printf("%.4lf+%.4lf=%.4lf\n", a, b, a+b);
else if(ch=='-')
printf("%.4lf-%.4lf=%.4lf\n", a, b, a-b);
else if(ch=='*')
printf("%.4lf*%.4lf=%.4lf\n", a, b, a*b);
else if(ch=='/')
{
if(b==0.0)
//分母为0时:
printf("Wrong!Division by zero!\n");
else
printf("%.4lf/%.4lf=%.4lf\n", a, b, a/b);
}
};
}
return 0;
}