C语言每日一练——day_6

引言

        针对初学者,每日练习几个题,快速上手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/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;
}

2.计算一元二次方程

        点进去直接做题:计算一元二次方程_牛客题霸_牛客网 (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. 小点数后位数有限制

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月多一天,其他都正常。

4.简单计算器

        点进去直接做题:

简单计算器_牛客题霸_牛客网 (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语句

5.线段图案

        点进去直接做题:线段图案_牛客题霸_牛客网 (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. 每次打印一个*,按照输入的个数打印后换行就行

6.正方形图案

        点进去直接做题:正方形图案_牛客题霸_牛客网 (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组*+空格组成

7.直角三角形图案

        点进去直接做题:

直角三角形图案_牛客题霸_牛客网 (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. 每一行的输出要有计算清楚

8.翻转直角三角形图案

        点进去直接做题:翻转直角三角形图案_牛客题霸_牛客网 (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. 控制好一行输出的内容

9.带空格直角三角形图案

        点进去直接做题:带空格直角三角形图案_牛客题霸_牛客网 (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.多组输入

10.金字塔图案

        点进去直接做题:金字塔图案_牛客题霸_牛客网 (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. 每一行的前边应该是空格,后边是*+空格,控制好个数就行

你可能感兴趣的:(C语言入门练习题,c语言,开发语言)