目录
题目链接四季_牛客题霸_牛客网 (nowcoder.com)
小乐乐找最大数_牛客题霸_牛客网 (nowcoder.com)
判断是不是字母_牛客题霸_牛客网 (nowcoder.com)
牛牛的二三七整除_牛客题霸_牛客网 (nowcoder.com)
统计数据正负个数_牛客题霸_牛客网 (nowcoder.com)
HTTP状态码_牛客题霸_牛客网 (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; }