💗前言

 以下题目来源于牛客网编程初学者练习,可以点击题目进行跳转。

这套题目适用于用来巩固基础的编程初学者,题目都不难,但是非常需要大家的细心~

这套题目每周至少2更。

大家一起学习,一起进步吧!💪

目录

💗前言

🔑BC10—实现四舍五入

🌹题目分析

🌹代码实现 

运行结果

🔑BC11—实现输入输出

🌹题目分析 

🌹代码实现

 运行结果 

🔑BC12—学生基本信息的输入输出

🌹题目分析

🌹 代码实现

预期结果

🔑BC13—出生日期输入输出

🌹 题目分析

🌹代码实现

🔑BC14—按照格式输入并交换输出

​🌹题目分析

🌹代码实现

预期结果

🔑 BC15—大小写转换

🌹题目分析

🌹代码实现

 预期结果

💗结束语


🔑BC10—实现四舍五入

🌹题目分析

这是一道基本的入门题目,我们需要将正数负数分开讨论

  • 如果输入的是正数,要满足小数点后满5进1,我们给这个整数+0.5,最后取整,就可以得到四舍五入后的值
  • 如果是负数,负数与正数相反,所以只要给数字-0.5,取整就可以得到结果。

也可以举个例子(数字),用数学思维想以下,会更容易理解哦~🌹

🌹代码实现 

#include <stdio.h>
int main(){
   float i;
    scanf("%f",&i);
    
    if(i>=0)//正数
    {
        int a = i+0.5;
        printf("%d",a);
    }
    else   //负数
    {
        int a = i - 0.5;
        printf("%d",a);
    }
    return 0;
}

运行结果

 


🔑BC11—实现输入输出

🌹题目分析 

 这个题只有简单的输入、输出。根据题意将代码写出即可

这个题我就不多说啦,只要注意题目中的一些细节内容,相信大家可以写出来的~

🌹代码实现

#include <stdio.h>
int main()
{
    int a,b,c;
    scanf("%d %d %d",&a,&b,&c);
    
    printf("score1=%d,score2=%d,score3=%d",a,b,c);
    
    return 0;
}

 运行结果 

 


🔑BC12—学生基本信息的输入输出

🌹题目分析

这个题是上一题的升级,除了要进行输入,还要注意题目中所说的输出成绩时需要进行四舍五入并且保留两位小数 

Q:如何能使输出结果中只保留两位小数?

A:%.2f

最后就是要注意输出样例中的一些空格,例如,【score of No. 17140216】标红的地方就是有一个个空格。

🌹 代码实现

#include <stdio.h>
int main()
{
    int num;
    float a,b,c;
    
    scanf("%d;%f,%f,%f",&num,&a,&b,&c);
    
    printf("The each subject score of No. %d is %.2f, %.2f, %.2f.",num,a,b,c);
    
    return 0;
}

预期结果


🔑BC13—出生日期输入输出

🌹 题目分析

  • 先看输入格式,只需要将year/month/date连续输入,不需要任何分隔符,也不需要空格。

但重点在于输出格式,在输出month和date时,如果只有一位数,前面的空位置需要用0来填空。

Q:如果可以使输出数值左边的空位置自动用0来填充?

A:可以看到题目中的备注中写到“通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。”所以在输出中添加%0。

🌹代码实现

#include <stdio.h>
int main()
{
    int y,m,d;
    scanf("%4d%2d%2d",&y,&m,&d);    //%4d确保只输入四位数 %2d同理
    
    printf("year=%d\n",y);
    //%0可以填充前导0
    printf("month=%02d\n",m);
    printf("date=%02d",d);
    return 0;
}

 预期结果


🔑BC14—按照格式输入并交换输出

🌹题目分析

  • 方法一:引入一个变量,作为a、b交换的中间值
  • 方法二:直接在输出时,交换a、b的量,即a=b,b=a

🌹代码实现

方法一:

#include <stdio.h>
int main()
{
    int a,b;
    int t=0;
   scanf("a=%d,b=%d",&a,&b);
    t=a;
    a=b;
    b=t;
    
    printf("a=%d,b=%d",a,b);
    return 0;
}

方法二: 

#include <stdio.h>
int main()
{
    int a,b;
 
   scanf("a=%d,b=%d",&a,&b);
    printf("a=%d,b=%d",b,a);
    return 0;
}

预期结果

 


🔑 BC15—大小写转换

 

🌹题目分析

  •  将大写字母转换为小写字母并不难,将大写字母对应的的ASCll码值+32就可以得到小写字母
  • 但本题的难点在于如何进行多组输入输出

Q:在实现代码时,如何进行多组输入?

A:利用循环

🌹代码实现

#include <stdio.h>
int main()
{
   int ch = 0;
    while((ch=getchar())!=EOF)//EOF表示-1。该语句的作用即只要输入项是字符即可打印
    {
        //该题的难点在于如何进行多组输入
       getchar();
       putchar(ch+32);
        printf("\n");
    }
    return 0;
}

 预期结果

💗结束语

今天的题目内容就到这里啦~

你学会了?

欢迎在评论区或者私信告诉我 

更多推荐

牛客网-编程初学者入门训练-题解