作者为编程初学者,现将自己在洛谷的刷题的一些代码与心得同大家分享如有错误麻烦指正,欢迎与作者交流讨论~~~希望在这里为大家提供帮助,并能与各位一起学习共同进步
【入门1】顺序结构
P1001 A+B Problem
输入两个整数 a, ba,b,输出它们的和(|a|,|b| \le {10}^9∣a∣,∣b∣≤109)
#include <stdio.h>
int main()
{
long long int a,b;
scanf("%lld %lld",&a,&b);
printf("%lld",a+b);
return 0;
}
P1000 超级玛丽游戏
超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。
#include<stdio.h>
int main()
{
printf(" ********\n");
printf(" ************\n");
printf(" ####....#.\n");
printf(" #..###.....##....\n");
printf(" ###.......###### ### ###\n");
printf(" ........... #...# #...#\n");
printf(" ##*####### #.#.# #.#.#\n");
printf(" ####*******###### #.#.# #.#.#\n");
printf(" ...#***.****.*###.... #...# #...#\n");
printf(" ....**********##..... ### ###\n");
printf(" ....**** *****....\n");
printf(" #### ####\n");
printf(" ###### ######\n");
printf("##############################################################\n");
printf("#...#......#.##...#......#.##...#......#.##------------------#\n");
printf("###########################################------------------#\n");
printf("#..#....#....##..#....#....##..#....#....#####################\n");
printf("########################################## #----------#\n");
printf("#.....#......##.....#......##.....#......# #----------#\n");
printf("########################################## #----------#\n");
printf("#.#..#....#..##.#..#....#..##.#..#....#..# #----------#\n");
printf("########################################## ############\n");
return 0;
}
P5703 【深基2.例5】苹果采购
现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?输入两个不超过 10^9109 正整数,分别表示每人分到的数量和同学的人数。
#include<stdio.h>
int main()
{
int a,b;
scanf("%d %d",&a,&b);//数量和人数
printf("%d",a*b);
return 0;
}
P5704【深基2.例6】字母转换
输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。
#include<stdio.h>
int main()
{
char a,b;//用char输入 注意输入输出时改为%c
scanf("%c",&a);
b=a-32;//小写字母减32为大写字母
printf("%c",b);
return 0;
}
P5705【深基2.例7】数字反转
输入一个不小于 100100 且小于 10001000,同时包括小数点后一位的一个浮点数,例如 123.4123.4 ,要求把这个数字翻转过来,变成 4.3214.321 并输出。
#include<stdio.h>
int main()
{
char a,b,c,d,e;//直接将数字和标点看成符号!而不是用数字的取余运算
scanf("%c %c %c %c %c",&a,&b,&c,&d,&e);
printf("%c%c%c%c%c",e,d,c,b,a);
return 0;
}
P5706【深基2.例8】再分肥宅水
现在有 t 毫升肥宅快乐水,要均分给 n 名同学。每名同学需要 2 个杯子。现在想知道每名同学可以获得多少毫升饮料(严格精确到小数点后 3 位),以及一共需要多少个杯子。输入一个实数 t 和一个整数 n,使用空格隔开。输出两个数字表示答案,使用换行隔开。
0≤t≤10000且不超过3位小数,1≤n≤1000
#include<stdio.h>
int main()
{
double t;//double和float的区别
int n=0;
double a=0;
int b=0;
scanf("%lf%d",&t,&n);
printf("%.3lf\n%d",(t/(double)(n)),(n*2));
return 0;
}
P1425小鱼的游泳时间
伦敦奥运会要到了,小鱼在拼命练习游泳准备参加游泳比赛,可怜的小鱼并不知道鱼类是不能参加人类的奥运会的。
这一天,小鱼给自己的游泳时间做了精确的计时(本题中的计时都按24小时制计算),它发现自己从a时b分一直游泳到当天的c时d分,请你帮小鱼计算一下,它这天一共游了多少时间呢?
小鱼游的好辛苦呀,你可不要算错了哦。
#include<stdio.h>
int main()
{
int a,b,c,d,e,f;
scanf("%d %d %d %d",&a,&b,&c,&d);
if(b>d)
{
printf("%d %d",c-a-1,60-b+d);
}
else{printf("%d %d",c-a,d-b);}
return 0;
}
P5708【深基2.习2】三角形面积
一个三角形的三边长分别是 aa、bb、cc,那么它的面积为 根{p(p-a)(p-b)(p-c)},其中 p=1/2(a+b+c)p。输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。
保证能构成三角形,0≤a,b,c≤1000,每个边长输入时不超过2位小数。
#include<stdio.h>
#include<math.h>//平方之前要声明数学符号
int main()
{
double a,b,c,s,p;//float,对应%f. double,对应%lf.
scanf("%lf %lf %lf",&a,&b,&c);//&&&之间要加逗号
p=(a+b+c)/2;//不能是×二分之一
s=sqrt(p*(p-a)*(p-b)*(p-c));//平方
printf("%.1lf",s);//精确到一位小数
return 0;
}
P1421小玉买文具
班主任给小玉一个任务,到文具店里买尽量多的签字笔。已知一只签字笔的价格是 11 元 99 角,而班主任给小玉的钱是 aa 元 bb 角,小玉想知道,她最多能买多少只签字笔呢。
#include<stdio.h>
int main()
{
int a,b,c,d=19,e;
scanf("%d %d",&a,&b);
c=a*10+b;
e=c/d;
printf("%d",e);
return 0;
}
P5709【深基2.习6】Apples Prologue / 苹果和虫子
八尾勇喜欢吃苹果。她现在有 m(m≤100) 个苹果,吃完一个苹果需要花费 t(0≤t≤100) 分钟,吃完一个后立刻开始吃下一个。现在时间过去了s(s≤10000) 分钟,请问她还有几个完整的苹果?
#include<stdio.h>
int main()
{
int m,t,s;
scanf("%d %d %d",&m,&t,&s);
if (s>=m*t)printf("%d",0);//首先判断过去的时间是否吃完了苹果,吃完直接输出0
else
{
if(s%t==0)printf("%d",m-s/t);//判断过去的时间能否整吃一个苹果的时间
else printf("%d",m-1-s/t);}//不完整即有一个不完整的苹果m-1
return 0;
}
P2181对角线
对于一个 nn 个顶点的凸多边形,它的任何三条对角线都不会交于一点。请求出图形中对角线交点的个数。
#include<stdio.h>
int main()
{
unsigned long int n,a;//注意是非负长整型
scanf("%ld",&n);
if (n<=3) a=0;//注意对角线不存在的情况
else a=n*(n-1)/2*(n-2)/3*(n-3)/4;
printf("%ld",a);
return 0;
}
P5707【深基2.例12】上学迟到
yyy 的学校要求早上 8 点前到达。学校到 yyy 的家一共有 (s≤10000) 米,而 yyy 可以以 v(v<10000)v(v<10000) 米每分钟的速度匀速走到学校。此外在上学路上它还要额外花 10 分钟时间进行垃圾分类。请问为了避免迟到 yyy 最晚什么时候出门?输出
HH:MM
的时间格式,不足两位时补零。由于路途遥远, yyy 可能不得不提前一天出发,不过不可能提前超过一天。
#include<stdio.h>
int main()//别忘了括号!!
{
int s,v,t,h=8,m=00,h1,h2,m1,m2;//八点前=七点五十九
scanf("%d %d",&s,&v);
if(s%v==0)t=s/v+10;
else t=s/v+1+10;
while(t!=0) //一分钟一分钟的算
{
if(m!=0)m--;
else
{
if(h!=0){h--;m=59;}
else{h=23;m=59;}
}
t--;
}
h1=h/10;//分开保存十位和个位
h2=h%10;
m1=m/10;
m2=m%10;
printf("%d%d:%d%d",h1,h2,m1,m2);
return 0;
}
P3954[NOIP2017 普及组] 成绩
牛牛最近学习了 C++ 入门课程,这门课程的总成绩计算方法是:
总成绩=作业成绩\times 20%+×20%+小测成绩×30%+×30%+期末考试成绩\times 50%×50%
牛牛想知道,这门课程自己最终能得到多少分。
#include<stdio.h>
int main()
{
double zy,xc,qm;
int s;
scanf("%lf %lf %lf",&zy,&xc,&qm);
s=zy*0.2+xc*0.3+qm*0.5;
printf("%d",s);
return 0;
}
版权归原作者 祈月m 所有, 如有侵权,请联系我们删除。