【C语言】在线OJ题 BC53-BC70 -牛客网编程初学者入门训练
目录
- BC53 计算一元二次方程
- BC54 获得月份天数
- BC55 简单计算器
- BC56 线段图案
- BC57 正方形图案
- BC58 直角三角形图案
- BC59 翻转直角三角形图案
- BC60 带空格直角三角形图案
- BC61 金字塔图案
- BC62 翻转金字塔图案
- BC63 菱形图案
- BC64 K形图案
- BC65 箭形图案
- BC66 反斜线形图案
- BC67 正斜线形图案
- BC68 X形图案
- BC69 空心正方形图案
- BC70 空心三角形图案
BC53 计算一元二次方程
描述
从键盘输入a, b, c的值,编程计算并输出一元二次方程ax2 + bx + c = 0的根,当a = 0时,输出“Not quadratic equation”,当a ≠ 0时,根据△ = b2 - 4ac的三种情况计算并输出方程的根。
输入描述:
多组输入,一行,包含三个浮点数a, b, c,以一个空格分隔,表示一元二次方程ax2 + bx + c = 0的系数。
输出描述:
针对每组输入,输出一行,输出一元二次方程ax2 + bx +c = 0的根的情况。
如果a = 0,输出“Not quadratic equation”;
如果a ≠ 0,分三种情况:
△ = 0,则两个实根相等,输出形式为:x1=x2=…。
△ > 0,则两个实根不等,输出形式为:x1=…;x2=…,其中x1 <= x2。
△ < 0,则有两个虚根,则输出:x1=实部-虚部i;x2=实部+虚部i,即x1的虚部系数小于等于x2的虚部系数,实部为0时不可省略。实部= -b / (2a),虚部= sqrt(-△ ) / (2a)
所有实数部分要求精确到小数点后2位,数字、符号之间没有空格。
示例1
输入:
2.0 7.0 1.0
输出:
x1=-3.35;x2=-0.15
示例2
输入:
0.0 3.0 3.0
输出:
Not quadratic equation
示例3
输入:
1 2 1
输出:
x1=x2=-1.00
示例4
输入:
2 2 5
输出:
x1=-0.50-1.50i;x2=-0.50+1.50i
示例5
输入:
1 0 1
输出:
x1=0.00-1.00i;x2=0.00+1.00i
题目链接
#include <stdio.h>
#include <math.h>int main()
{double a = 0.0;double b = 0.0;double c = 0.0;while ((scanf("%lf %lf %lf", &a, &b, &c)) != EOF){if (a == 0.0){printf("Not quadratic equation\n");}else{double disc = pow(b, 2) - 4.0 * a * c;if (disc == 0.0){//有两个相等的实根printf("x1=x2=%.2lf\n", (-b) / (2 * a));}else if (disc > 0.0){//有两个不等的实根printf("x1=%.2lf;x2=%.2lf\n", (-b - sqrt(disc)) / (2 * a), (-b + sqrt(disc)) / (2 * a));}else{//2个虚根double real = (-b) / (2 * a);double image = sqrt(-disc) / (2 * a);printf("x1=%.2lf-%.2lfi;x2=%.2lf+%.2lfi\n", real, image, real, image);}}}return 0;
}/*
#include <stdio.h>
#include <math.h>int main()
{float a, b, c;while ((scanf("%f %f %f", &a, &b, &c)) != EOF){float e = b * b - 4 * a * c;float s = sqrt(e);if (a == 0){printf("Not quadratic equation\n");}if (a != 0){if (e == 0){printf("x1=x2=%.2f\n", (-b + s) / (2 * a));}if (e > 0){printf("x1=%.2f;x2=%.2f\n", (-b - s) / (2 * a), (-b + s) / (2 * a));}if (e < 0){printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi", -b/(2*a), sqrt(-e)/(2*a), -b/(2*a), sqrt(-e)/(2*a));}}}return 0;
}
*/
BC54 获得月份天数
描述
KiKi想获得某年某月有多少天,请帮他编程实现。输入年份和月份,计算这一年这个月有多少天。
输入描述:
多组输入,一行有两个整数,分别表示年份和月份,用空格分隔。
输出描述:
针对每组输入,输出为一行,一个整数,表示这一年这个月有多少天。
示例1
输入:
2008 2
输出:
29
题目链接
#include <stdio.h>int main()
{int y = 0;int m = 0;int days[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };while (~scanf("%d %d", &y, &m)){int day = days[m - 1];if (y % 4 == 0 && y % 100!=0 || (y % 400==0)){if (m == 2){day += 1;}}printf("%d\n", day);}return 0;
}//
#include <stdio.h>int is_leap_year(int year)
{if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)){return 1;}elsereturn 0;
}int main()
{int year = 0;int month = 0;while ((scanf("%d %d", &year, &month)) != EOF){switch (month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("31\n");break;case 2:if (is_leap_year(year)){printf("29\n");break;}else{printf("28\n");break;}case 4:case 6:case 9:case 11:printf("30\n");break;default:break;}}return 0;
}
BC55 简单计算器
描述
KiKi实现一个简单计算器,实现两个数的“加减乘除”运算,用户从键盘输入算式“操作数1运算符操作数2”,计算并输出表达式的值,如果输入的运算符号不包括在(+、-、、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。如果操作数2等于0.0,则输出“Wrong!Division by zero!”
输入描述:
多组输入,一行,操作数1运算符操作数2(其中运算符号包括四种:+、-、、/)。
输出描述:
针对每组输入,输出为一行。
如果操作数和运算符号均合法,则输出一个表达式,操作数1运算符操作数2=运算结果,各数小数点后均保留4位,数和符号之间没有空格。
如果输入的运算符号不包括在(+、-、*、/)范围内,输出“Invalid operation!”。当运算符为除法运算,即“/”时。
如果操作数2等于0.0,则输出“Wrong!Division by zero!”。
示例1
输入:
1.0+3.0
1.0;4.0
44.0/0.0
输出:
1.0000+3.0000=4.0000
Invalid operation!
Wrong!Division by zero!
题目链接
#include <stdio.h>int main()
{double n1 = 0.0;double n2 = 0.0;char op = 0;while(~scanf("%lf%c%lf", &n1, &op, &n2)){switch(op){case '+':printf("%.4lf+%.4lf=%.4lf\n", n1, n2, n1+n2);break;case '-':printf("%.4lf-%.4lf=%.4lf\n", n1, n2, n1-n2);break;case '*':printf("%.4lf*%.4lf=%.4lf\n", n1, n2, n1*n2);break;case '/':if(n2 == 0.0){printf("Wrong!Division by zero!\n");}else{printf("%.4lf/%.4lf=%.4lf\n", n1, n2, n1/n2);}break;default:printf("Invalid operation!\n");break;}}return 0;
}
BC56 线段图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。
输入描述:
多组输入,一个整数(1~100),表示线段长度,即“”的数量。
输出描述:
针对每行输入,输出占一行,用“”组成的对应长度的线段。
示例1
输入:
10
2
输出:
**********
**
题目链接
int main()
{int n = 0;while(scanf("%d", &n) != EOF){int i = 0;for(i=0; i<n; i++){printf("*");}printf("\n");}return 0;
}/*
#include <stdio.h>int main()
{int line = 0;while((scanf("%d", &line)) != EOF){if(line >= 1 && line <=100){while(line--){printf("*");}printf("\n");}}return 0;
}
*/
BC57 正方形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正方形图案。
输入描述:
多组输入,一个整数(1~20),表示正方形的长度,也表示输出行数。
输出描述:
针对每行输入,输出用“”组成的对应边长的正方形,每个“”后面有一个空格。
示例1
输入:
4
输出:
* * * *
* * * *
* * * *
* * * *
示例2
输入:
5
输出:
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;for(i=0; i<n; i++){int j = 0;for(j=0; j<n; j++){printf("* ");}printf("\n");}}return 0;
}
BC58 直角三角形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的直角三角形图案。
输入描述:
多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“”组成的对应长度的直角三角形,每个“”后面有一个空格。
示例1
输入:
4
复输出:
*
* *
* * *
* * * *
示例2
输入:
5
输出:
*
* *
* * *
* * * *
* * * * *
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;for(i=0; i<n; i++){int j = 0;for(j=0; j<=i; j++){printf("* ");}printf("\n");}}return 0;
}
BC59 翻转直角三角形图案
多组输入,一个整数(2~20),表示翻转直角三角形直角边的长度,即“”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“”组成的对应长度的翻转直角三角形,每个“*”后面有一个空格。
示例1
输入:
5
输出:
* * * * *
* * * *
* * *
* *
*
示例2
输入:
6
输出:
* * * * * *
* * * * *
* * * *
* * *
* *
*
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;for(i=0; i<n; i++){int j = 0;for(j=0; j<n-i; j++){printf("* ");}printf("\n");}}return 0;
}
BC60 带空格直角三角形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的带空格直角三角形图案。
输入描述:
多组输入,一个整数(2~20),表示直角三角形直角边的长度,即“*”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“”组成的对应长度的直角三角形,每个“”后面有一个空格。
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;for(i=0; i<n; i++){int j =0;for(j=0; j<n-1-i; j++){printf(" ");}for(j=0; j<=i; j++){printf("* ");}printf("\n");}}return 0;
}//找规律
int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;for (i = 0; i < n; i++){ int j = 0;for (j = 0; j < n; j++){if (i + j < n - 1)printf(" ");elseprintf("* ");}}printf("\n");}return 0;
}
BC61 金字塔图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的金字塔图案。
输入描述:
多组输入,一个整数(2~20),表示金字塔边的长度,即“”的数量,,也表示输出行数。
输出描述:
针对每行输入,输出用“”组成的金字塔,每个“”后面有一个空格。
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i =0;for(i=0; i<n; i++){int j =0;for(j=0; j<n-1-i; j++){printf(" ");}for(j=0; j<=i; j++){printf("* ");}printf("\n");}}return 0;
}
BC62 翻转金字塔图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的翻转金字塔图案。
输入描述:
多组输入,一个整数(2~20),表示翻转金字塔边的长度,即“”的数量,也表示输出行数。
输出描述:
针对每行输入,输出用“”组成的金字塔,每个“”后面有一个空格。
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i =0;for(i=0; i<n; i++){int j =0;for(j=0; j<i; j++){printf(" ");}for(j=0; j<n-i; j++){printf("* ");}printf("\n");}}return 0;
}
BC63 菱形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。
输入描述:
多组输入,一个整数(2~20)。
输出描述:
针对每行输入,输出用“”组成的菱形,每个“”后面有一个空格。
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;int j = 0;for(i=0; i<=n; i++){for(j=0; j<n-i; j++){printf(" ");}for(j=0; j<=i; j++){printf("* ");}printf("\n");}for(i=0; i<n; i++){for(j=0; j<=i; j++){printf(" ");}for(j=0; j<n-i; j++){printf("* ");}printf("\n");}}return 0;
}
BC64 K形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的K形图案。
输入描述:
多组输入,一个整数(2~20)。
输出描述:
针对每行输入,输出用“”组成的K形,每个“”后面有一个空格。
示例1
输入:
2
输出:
* * *
* *
*
* *
* * *
示例2
输入:
3
输出:
* * * *
* * *
* *
*
* *
* * *
* * * *
示例3
输入:
4
输出:
* * * * *
* * * *
* * *
* *
*
* *
* * *
* * * *
* * * * *
题目链接
bug 连续点提交 十几次才通过 坑
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;int j = 0;for(i=0; i<n; i++){for(j=0; j<n+1-i; j++){printf("* ");}for(j=0; j<i; j++) //空格 坑{printf(" ");}printf("\n");}for(i=0; i<n+1; i++){for(j=0; j<=i; j++){printf("* ");}for(j=0; j<n-i; j++) //空格 坑{printf(" ");}printf("\n");}}return 0;
}//
#include <stdio.h>int main()
{int n = 0;while ((scanf("%d", &n)) != EOF){int i = 0;int j = 0;for (i = 0; i <= n; i++){for (j = 0; j <= n - i; j++){printf("* ");}for (j = 0; j < i; j++) //空格 坑{printf(" ");}printf("\n");}for (i = 0; i < n; i++){for (j = 0; j <= i + 1; j++){printf("* ");}for (j = 0; j <= n - 1 - i; j++) //空格 坑{printf(" ");}printf("\n");}}return 0;
}
BC65 箭形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的箭形图案。
输入描述:
多组输入,一个整数(2~20)。
输出描述:
针对每行输入,输出用“”组成的箭形。
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;int j = 0;for(i=0; i<=n; i++){for(j=0; j<n-i; j++){printf(" ");}for(j=0; j<=i; j++){printf("*");}printf("\n");}for(i=0; i<n; i++){for(j=0; j<=i; j++){printf(" ");}for(j=0; j<n-i; j++){printf("*");}printf("\n");}}return 0;
}
BC66 反斜线形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的反斜线形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成反斜线的“”的数量。
输出描述:
针对每行输入,输出用“*”组成的反斜线。
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;for(i=0; i<n; i++){int j = 0;for(j=0; j<i; j++){printf(" ");}printf("*");printf("\n");}}return 0;
}//
int main()
{int n = 0;while (~scanf("%d", &n)){int i = 0;for (i = 0; i < n; i++){int j = 0;for (j = 0; j < n; j++){if (i == j)printf("*");elseprintf(" ");}printf("\n");}}
}
BC67 正斜线形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的正斜线形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成正斜线的“”的数量。
输出描述:
针对每行输入,输出用“*”组成的正斜线。
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;for(i=0; i<n; i++){int j = 0;for(j=0; j<n-1-i; j++){printf(" ");}printf("*\n");}}return 0;
}//
int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;for (i = 0; i < n; i++){int j = 0;if (i + j == n - 1)printf("*");elseprintf(" ");}printf("\n");}return 0;
}
BC68 X形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的X形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
输出描述:
针对每行输入,输出用“”组成的X形图案。
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;for(i=0; i<n; i++){int j = 0;for(j=0; j<n; j++){if(j==i || j+i==n-1){printf("*");}else{printf(" ");}}printf("\n");}}return 0;
}
BC69 空心正方形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的“空心”正方形图案。
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“”的数量。
输出描述:
针对每行输入,输出用“”组成的“空心”正方形,每个“”后面有一个空格。
题目链接
#include <stdio.h>/*
int main()
{int n = 0;while(scanf("%d", &n) != EOF){int i = 0;for(i=0; i<=n; i++){int j = 0;for(j=0; j<n; j++){printf("* ");}printf("\n");}}return 0;
}
*/
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<=n; j++){if(i==1 || i==n || j==1 || j==n){printf("* ");}else{printf(" ");}}printf("\n");}}return 0;
}
BC70 空心三角形图案
描述
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“”组成的“空心”三角形图案。
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成三角形边的“”的数量。
输出描述:
针对每行输入,输出用“”组成的“空心”三角形,每个“”后面有一个空格。
题目链接
#include <stdio.h>int main()
{int n = 0;while((scanf("%d", &n)) != EOF){int i = 0;for(i=0; i<n; i++){int j = 0;for(j=0; j<n; j++){if(j==0 || i==n-1 || i==j){printf("* ");}else{printf(" ");}}printf("\n");}}return 0;
}
【C语言】在线OJ题 BC53-BC70 -牛客网编程初学者入门训练相关推荐
- 牛客网 编程初学者入门训练 BC133 KiKi说祝福语
题目来源:牛客网 编程初学者入门训练 BC133 KiKi说祝福语 import java.util.Scanner; public class Main {public static void ma ...
- 牛客网 编程初学者入门训练 BC37 网购 Java
题目来源:牛客网 编程初学者入门训练 BC37 网购 import java.util.Scanner; public class Main {public static void main(Stri ...
- 牛客网 编程初学者入门训练 BC3 有容乃大 Java
题目来源:牛客网 编程初学者入门训练 BC3 有容乃大 public class Main {public static void main(String[] args) {System.out.pr ...
- 牛客网编程初学者入门训练讲解(C语言)
以十进制显示数字,使用%d:以八进制 显示数字,使用%o:以十六进制显示数字,使用%x.另外,要显示各进制数的前缀0.0x和0X,必须使用%#o.%#x.%#X. --<C Primier Pl ...
- 【C语言】牛客网编程初学者入门训练-BC88-BC98
目录 BC88 有序序列插入一个数 BC89 密码验证 BC90 矩阵计算 BC91 成绩输入输出问题 BC92 逆序输出 BC93 统计数据正负个数 BC94 N个数之和 BC95 最高分与最低分之 ...
- 牛客网编程初学者入门训练 BC28
BC28 大小写转换 #include <stdio.h> int main() {int ch = 0;while ((ch = getchar()) != EOF){printf(&q ...
- 【C语言】在线OJ题 BC122-BC139-牛客网编程初学者入门训练
目录 BC122 小乐乐算平均分 BC123 小乐乐找最大数 BC124 小乐乐是否被叫家长 BC125 小乐乐转换成绩 BC126 小乐乐算多少人被请家长 BC127 小乐乐算最高分 BC128 小 ...
- 【C语言】在线OJ题 BC7-BC52-牛客网编程初学者入门训练
目录 BC7 缩短二进制 BC8 十六进制转十进制 BC9 printf的返回值 BC10 成绩输入输出 BC11 学生基本信息输入输出 BC12 字符金字塔 BC13 ASCII码 BC14 出生日 ...
- 【C语言】在线OJ题 BC99-BC119-牛客网编程初学者入门训练
目录 BC99 序列中整数去重 BC100 有序序列合并 BC101 班级成绩输入输出 BC102 矩阵元素定位 BC103 序列重组矩阵 BC104 最高身高 BC105 矩阵相等判定 BC106 ...
最新文章
- 编写里Linux命令解释器,linux基础教程试卷及答案
- 运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解
- 2016年研究数据可视化最不应该错过的10篇文章
- 手把手带你玩转 AWS Lambda
- 如何关闭360自定义错误页面
- Jenkins搭建的几个坑记下
- python mysqldb安装_解决centos7 安装MySQLdb-python 报错 方案
- 用Apache构建WEB服务器
- CentOS服务器上部署 oracle10gr2
- apk私钥_获取APK证书MD5、SHA1、SHA256等秘钥
- SpringMVC 传递相同名称的参数的最佳方法
- UCF101数据集提取帧+TDN部署(Anaconda+Python3.7+Pytorch)
- python快速处理ppt_这10个批量处理的PPT技巧,让你的效率提升100倍!
- 下载vc_redist运行库
- 最高奖励68万!多邻国英语测试设立研究基金
- python构建决策引擎_决策引擎与机器学习模型的集成 | 信数这么干(一)
- three.js学习笔记(七)——粒子
- 湖南快乐阳光互动娱乐传媒有限公司诉被告杭州三基传媒有限公司侵害作品信息网络传播权纠纷一案
- 伽利略或洛伦兹变换不适用于波动
- Word中英文导致空格间距过大如何解决?
热门文章
- php和nginx如何,php和nginx如何交互
- 检查eth是否到账_税务检查视角:高新技术企业核查要点
- k8s与监控--从telegraf改造谈golang多协程精确控制
- Spring Cloud Config服务端配置细节(二)之加密解密
- (算法)最长回文子串
- winform窗口关闭提示
- mysql高级用法(函数)
- js面向对象插件的做法框架new goBuy('.cakeItem',{ add:'.add', reduce:'.reduce' },[1,0.7,0.6]);...
- 第14次全天课笔记 20181028 集合、时间、类
- 02--Tomcat总体结构分析一