针对初学者,每日练习几个题,快速上手C语言。第六天。(连续更新中)
采用在线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
点进去直接做题:
衡量人体胖瘦程度_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/4d604603fae94a26b59b7bc18f363bc0?tpId=107&&tqId=33333&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking
解析:1. 多组输入
2. 浮点数除法要保证除号的两端至少有一个浮点数
3.知道BMI指数怎么算:BMI == 体重 / 身高的平方。
参考代码:
#include
int main() { int a,b; float c,bmi; while(scanf("%d %d",&a,&b)!=EOF) { c=b/100.0; bmi=a/(c*c); if(bmi<18.5) printf("Underweight\n"); else if(bmi>=18.5&&bmi<=23.9) printf("Normal\n"); else if(bmi>23.9&&bmi<=27.9) printf("Overweight\n"); else if(bmi>27.9) printf("Obese\n"); } return 0; }
点进去直接做题:计算一元二次方程_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26?tpId=107&&tqId=33334&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking
参考代码:
#include
#include
#include
int main(){
float a=0,b=0,c=0;
float x1,x2;
while(scanf("%f %f %f",&a,&b,&c)!=EOF){
// float d=b*b-4*a*c;
if(a==0)
printf("Not quadratic equation");
else {
float d=b*b - 4*a*c;
if(d==0)
{
float s=-b+sqrt(d);
if(s==0){
printf("x1=x2=%.2f\n",s);
}
else{
printf("x1=x2=%.2f\n",(-b)/2.0/a);
}
}
else if(d<0){
printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n",-b/2/a,sqrt(-d)/2/a,-b/2/a,sqrt(-d)/2/a);
}
else
printf("x1=%.2f;x2=%.2f\n",(-b-sqrt(d))/2.0/a,(-b+sqrt(d))/2.0/a);
}
}
return 0;
}
解析:
1. 多组输入
2. 根据不同的限制条件给出相应的计算结果
3. 小点数后位数有限制
点进去直接做题:
获得月份天数_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/13aeae34f8ed4697960f7cfc80f9f7f6?tpId=107&&tqId=33335&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking
#include
int Run(int year)
{
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0) //判断闰年
return 1;
return 0;
}
int main() {
int year, month;
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(Run(year)) printf("29\n");
else printf("28\n");
break;
}
case 4:
case 6:
case 9:
case 11:
printf("30\n");
break;
}
}
return 0;
}
解析:
1. 多组输入
2. 判断闰年,如果是闰年,2月多一天,其他都正常。
点进去直接做题:
简单计算器_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/b8f770674ba7468bb0a0efcc2aa3a239?tpId=107&&tqId=33336&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include
int main()
{
double a,b;
char c;
//flaot add,mul,sub,div;
scanf("%lf%c%lf",&a,&c,&b);
switch(c)
{
case '+':
//add=a+b;
printf("%.4lf+%.4lf=%.4lf",a,b,a+b);
break;
case '-':
// sub=a-b;
printf("%.4lf-%.4lf=%.4lf",a,b,a-b);
break;
case '*':
// mul=a*b;
printf("%.4lf*%.4lf=%.4lf",a,b,a*b);
break;
case '/':
if(b==0.0)
{
printf("Wrong!Division by zero!\n");
}
else
{
// div=a/b;
printf("%.4lf/%.4lf=%.4lf",a,b,a/b);
}
break;
default: printf("Invalid operation!\n");
break;
}
}
解析:
1. 多组输入
2. 按照格式接收,按照要求编写代码就行
3. switch语句
点进去直接做题:线段图案_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/a95744270f274a14a8a0dafe10421589?tpId=107&&tqId=33337&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include
int main()
{
int a;
while(scanf("%d",&a) != EOF)
{
while(a > 0)
{
printf("*");
a--;
}
printf("\n");
}
return 0;
}
解析:
1. 多组输入
2. 每次打印一个*,按照输入的个数打印后换行就行
点进去直接做题:正方形图案_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/1304bb23c2e344989d5c7a578d263e4c?tpId=107&&tqId=33338&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include
int main(){
int x;
while(scanf("%d",&x)!=EOF){
for(int i=1;i<=x;i++){
for(int j=1;j<=x;j++){
if(j==x) printf("*\n");
else printf("* ");
}
}
}
}
解析:1. 多组输入
2. 每组是由n组*+空格组成
点进去直接做题:
直角三角形图案_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/00dd93f7c7074754b7511bf56d1f15ac?tpId=107&&tqId=33339&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i
解析:
1. 多组输入
2. 每一行的输出要有计算清楚
点进去直接做题:翻转直角三角形图案_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/2cdea429fa414fbba26e6c821724ca06?tpId=107&&tqId=33340&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include
int main()
{
int n;
while (scanf("%d", &n) != EOF) {
for (int i = n; i>0; i--) {
for (int j = i; j>0; j--) {
printf("* ");
}
printf("\n");
}
}
}
解析:
1. 多组输入
2. 每两个*中间有空格,要注意
3. 控制好一行输出的内容
点进去直接做题:带空格直角三角形图案_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/192d1039c3d44155bb868073f5482670?tpId=107&&tqId=33341&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include
int main()
{
int i=0, j=0,n,k=0;
while(scanf("%d", &n)!=EOF)
{
for (i =0; i
解析:
1.找规律
2.多组输入
点进去直接做题:金字塔图案_牛客题霸_牛客网 (nowcoder.com)https://www.nowcoder.com/practice/d84e8339f9444bb6b29bd3f227c8e538?tpId=107&&tqId=33342&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking参考代码:
#include
int main()
{
int i,j,n;
while (scanf("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
for (int j = 0; j
解析:
1. 多组输入
2. 每一行的前边应该是空格,后边是*+空格,控制好个数就行