洛谷-【入门1】顺序结构——C语言

1.Hello,World!

题目描述
编写一个能够输出 Hello,World! 的程序。

#include <stdio.h>
int main(){
    
    
    printf("Hello,World!");
    return 0;
}
Hello,World!

2.输出字符菱形

题目描述
用 * 构造一个对角线长5个字符,倾斜放置的菱形。

输入格式
没有输入要求。

输出格式
如样例所示。用 * 构成的菱形。

#include <stdio.h>
int main(){
    
    
    printf("  *\n"" ***\n""*****\n"" ***\n""  *\n");
    return 0;
}
  *
 ***
*****
 ***
  *

3.超级玛丽游戏

题目描述

超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。

#include <stdio.h>
int main(){
    
    
	char a[][67]={
    
    {
    
    "                ********"},
		{
    
    "               ************"},
		{
    
    "               ####....#."},
		{
    
    "             #..###.....##...."},
		{
    
    "             ###.......######              ###            ###"},
		{
    
    "                ...........               #...#          #...#"},
		{
    
    "               ##*#######                 #.#.#          #.#.#"},
		{
    
    "            ####*******######             #.#.#          #.#.#"},
		{
    
    "           ...#***.****.*###....          #...#          #...#"},
		{
    
    "           ....**********##.....           ###            ###"},
		{
    
    "           ....****    *****...."},
		{
    
    "             ####        ####"},
		{
    
    "           ######        ######"},
		{
    
    "##############################################################"},
		{
    
    "#...#......#.##...#......#.##...#......#.##------------------#"},
		{
    
    "###########################################------------------#"},
		{
    
    "#..#....#....##..#....#....##..#....#....#####################"},
		{
    
    "##########################################    #----------#"},
		{
    
    "#.....#......##.....#......##.....#......#    #----------#"},
		{
    
    "##########################################    #----------#"},
		{
    
    "#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#"},
		{
    
    "##########################################    ############"}};
	for(int i=0;i<=21;i++){
    
    
		puts(a[i]);
	}
	return 0;
}

4.A+B Problem

题目描述
输入两个整数a,b,输出它们的和(∣a∣,∣b∣≤10^9)。

输入格式

两个以空格分开的整数。

输出格式

一个整数。

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

输入

20 30

输出

50

5.字符三角形

题目描述

给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。

输入格式

输入只有一行,包含一个字符。

输出格式

该字符构成的等腰三角形,底边长5个字符,高3个字符。

#include<stdio.h>
int main(){
    
    
	char a;
	scanf("%c",&a);
	printf("%3c\n%2c%c%c\n%c%c%c%c%c",a,a,a,a,a,a,a,a,a);
}

输入

*

输出

  *
 ***
*****

6.苹果采购

题目描述
现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?

输入格式
输入两个不超过10^9正整数,分别表示每人分到的数量和同学的人数。

输出格式
一个整数,表示答案。保证输入和答案都在int范围内的非负整数。

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

输入

5 3

输出

15

7.字母转换

题目描述

输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出Q。

#include<stdio.h>
int main(){
    
    
	char a;
	scanf("%c",&a);
	printf("%c",a-32);
	return 0;
}

输入

q

输出

Q

8.数字反转

题目描述

输入一个不小于100且小于1000,同时包括小数点后一位的一个浮点数,例如123.4,要求把这个数字翻转过来,变成4.321并输出。

#include <stdio.h>
#include <string.h>
int main(){
    
    
	float n;
	scanf("%f",&n);
    printf("%.3f",int(n*10)%10+int(n)%10/10.0+int(n/10)%10/100.0+int(n/100)%10/1000.0);
	return 0;
}

输入

123.4

输出

4.321

9.再分肥宅水

题目描述

现在有t毫升肥宅快乐水,要均分给n名同学。每名同学需要2个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后3位),以及一共需要多少个杯子。

输入格式

输入一个实数t和一个正整数n,使用空格隔开。

输出格式

输出两行。

第一行输出一个三位小数,表示可以获得多少毫升饮料。

第二行输出一个正整数,表示一共需要多少个杯子。

#include <stdio.h>
#include <string.h>
int main(){
    
    
	int n;
	float t;
	scanf("%f %d",&t,&n);
	printf("%.3f\n",t/n);
	printf("%d",2*n);
	return 0;
}

输入

500.0 3

输出

166.667
6

10.三角形面积

题目描述

一个三角形的三边长分别是 a、b、c,那么它的面积为 \sqrt{p(p-a)(p-b)(p-c)},其中 p=1/2(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到1位小数。

输入格式

第一行输入三个实数 a,b,c,以空格隔开。

输出格式

输出一个实数,表示三角形面积。精确到小数点后1位。

#include <stdio.h>
#include <math.h>
int main(){
    
    
	double a,b,c,p,s;
	scanf("%lf %lf %lf",&a,&b,&c);
	if(a+b>c&&b+c>a&&a+c>b){
    
    
		p=(a+b+c)/2;
		s=sqrt(p*(p-a)*(p-b)*(p-c));
		printf("%.1lf",s);
	}
	return 0;
}

输入

3 4 5

输出

6.0

11.上学迟到

题目描述

学校和 yyy 的家之间的距离为s米,而 yyy 以v米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费10分钟的时间进行垃圾分类。

学校要求必须在上午8:00到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。

输入格式

一行两个正整数s,v,分别代表路程和速度。

输出格式

输出一个24小时制下的时间,代表 yyy 最晚的出发时间。

输出格式为HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补0。

#include <stdio.h>
#include <math.h>
int main(){
    
    
	unsigned int s,v,h=0,m=0;
	scanf("%d %d",&s,&v);
	float t=s/v+10;
	if(1.0*s/v>s/v)t++;
	h=t/60;
	m=t-h*60;
	if(h>=8){
    
    
		if(m>50)
			printf("%d:0%d",24+8-h-1,60-m);
		else
			printf("%d:%d",24+8-h-1,60-m);
	}
	else{
    
    
		if(m>50)
			printf("0%d:0%d",8-h-1,60-m);
		else
			printf("0%d:%d",8-h-1,60-m);
	}
	return 0;
}

输入

100 99

输出

07:48

12.大象喝水

题目描述
一只大象口渴了,要喝20升水才能解渴,但现在只有一个深h厘米,底面半径为r厘米的小圆桶(h和r都是整数)。问大象至少要喝多少桶水才会解渴。

输入格式
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深h和底面半径r,单位都是厘米。

输出格式
输出一行,包含一个整数,表示大象至少要喝水的桶数。

#include <stdio.h>
#include <math.h>
int main(){
    
    
	int h,r,n;
	double v;
	scanf("%d %d",&h,&r);
	v=3.14*r*r*h;
	if(20/v>int(20/v)){
    
    
		n=int(20*1000/v)+1;
	}
	else n=int(20*1000/v);
	printf("%d",n);
	return 0;
}

输入

23 11

输出

3

13.小鱼的游泳时间

题目描述
伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。

这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按24小时制计算),它发现自己从a时b分一直游泳到当天的c时d分,请你帮小鱼计算一下,它这天一共游了多少时间呢?

小鱼游的好辛苦呀,你可不要算错了哦。

输入格式
一行内输入4个整数,以空格隔开,分别表示题目中的a,b,c,d。

输出格式
一行内输出2个整数e和f,用空格间隔,依次表示小鱼这天一共游了多少小时多少分钟。其中表示分钟的整数f 应该小于60。

#include <stdio.h>
int main(){
    
    
	int a,b,c,d;
	scanf("%d %d %d %d",&a,&b,&c,&d);
	if(d>=b){
    
    
		printf("%d %d",c-a,d-b);
	}
	else{
    
    
		printf("%d %d",c-a-1,60-b+d);
	}
	return 0;
}

输入

12 50 19 10

输出

6 20

14.小玉买文具

题目描述
班主任给小玉一个任务,到文具店里买尽量多的签字笔。已知一只签字笔的价格是1元9角,而班主任给小玉的钱是a元b角,小玉想知道,她最多能买多少只签字笔呢。

输入格式
输入只有一行两个整数,分别表示a和b。

输出格式
输出一行一个整数,表示小玉最多能买多少只签字笔。

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

输入

10 3

输出

5

15.成绩

题目描述
牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是:

总成绩=作业成绩×20%+小测成绩×30%+期末考试成绩×50%

牛牛想知道,这门课程自己最终能得到多少分。

输入格式
三个非负整数A,B,C,分别表示牛牛的作业成绩、小测成绩和期末考试成绩。相邻两个数之间用一个空格隔开,三项成绩满分都是100分。

输出格式
一个整数,即牛牛这门课程的总成绩,满分也是100分。

#include <stdio.h>
int main(){
    
    
	unsigned int a,b,c,sum;
	scanf("%d %d %d",&a,&b,&c);
	sum=0.2*a+0.3*b+0.5*c;
	printf("%d",sum);
	return 0;
}

输入

100 100 80 

输出

90
//牛牛的作业成绩是100分,小测成绩是100分,期末考试成绩是80分,总成绩是100×20%+100×30%+80×50%=20+30+40=90。

输入

60 90 80 

输出

79
//牛牛的作业成绩是60分,小测成绩是90分,期末考试成绩是80分,总成绩是60×20%+90×30%+80×50%=12+27+40=79。

猜你喜欢

转载自blog.csdn.net/qq_44932745/article/details/128556861
今日推荐