博主:命运之光
专栏:算法修炼之练气篇
前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的,练完这200多道题就考了今年第十四届的B组蓝桥杯C/C++获得了省一,后面还会更新“算法修炼之筑基篇”里面包括了省赛到国赛这一个月训练的刷奖计划,大概有40道左右,感兴趣的话可以关注一下命运之光)
目录
题目 2778: 判断数正负
题目描述
输入格式
输出格式
样例输入
样例输出
题目 2780: 奇偶数判断
题目描述
输入格式
输出格式
样例输入
样例输出
题目 2181: 信息学奥赛一本通T1005-地球人口承载力估计
题目描述
输入格式
输出格式
样例输入
样例输出
题目 2998: 电影票
题目描述
输入格式
输出格式
样例输入
样例输出
题目 2997: 梯形面积
题目描述
输入格式
输出格式
样例输入
样例输出
题目 1073: 弟弟的作业
题目描述
输入格式
输出格式
样例输入
样例输出
一开始我是这样写的,时间超限50
改了一下这样写就没什么问题,有时候真的感觉差那么一点点,就是不给过是什么感觉。
🍓🍓今日份修炼结束,再接再厉!!!
题目 2778: 判断数正负
题目描述
给定一个整数N,判断其正负。
输入格式
一个整数N(-109 <= N <= 109)
输出格式
如果N > 0, 输出positive;
如果N = 0, 输出zero;
如果N < 0, 输出negative。
样例输入
1
样例输出
positive
主要就是if语句的运用,比较简单,见代码:
#include<stdio.h>
int main()
{
int n;//int的取值范围2147483648到2147483647
//够用了,所以就不写long long了
//顺便说一下long long的取值范围是-9223372036854775808到9223372036854775807
scanf("%d",&n);
if(n>0)
{
printf("positive");
}
if(n==0)
{
printf("zero");
}
if(n<0)
{
printf("negative");
}
return 0;
}
题目 2780: 奇偶数判断
题目描述
给定一个整数,判断该数是奇数还是偶数。
输入格式
输入仅一行,一个大于零的正整数n。
输出格式
输出仅一行,如果n是奇数,输出odd;如果n是偶数,输出even。
样例输入
5
样例输出
odd
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
if(n%2==0)
{
printf("even");
}
else
{
/*发这个就想吐槽一下这个输出*/
printf("odd");//欧豆豆,笑死我了!哈哈哈哈哈哈哈哈哈!
}
return 0;
}
题目 2181: 信息学奥赛一本通T1005-地球人口承载力估计
题目描述
假设地球上的新生资源按恒定速度增长。照此测算,地球上现有资源加上新生资源可供x亿人生活a年,或供y亿人生活b年。
为了能够实现可持续发展,避免资源枯竭,地球最多能够养活多少亿人?
输入格式
输入只有一行,包括四个正整数x,a,y,b,两个整数之间用单个空格隔开。x>y,a<b,ax<by,各整数均不大于10000。
输出格式
一个实数z,表示地球最多养活z亿人,舍入到小数点后两位。
样例输入
110 90 90 210
样例输出
75.00
一道数学题,与其说是算法其实主要就是解一道数学题。
#include<stdio.h>
int main()
{
double r1,z1,r2,z2;
scanf("%lf %lf %lf %lf",&r1,&z1,&r2,&z2);
printf("%.2lf",(r1*z1-r2*z2)/(z1-z2));
return 0;
}
题目 2998: 电影票
题目描述
已知一位小朋友的电影票价是10元,计算x位小朋友的总票价是多少?
输入格式
输入x。
输出格式
人数和电影票总价,中间用一个空格隔开。
样例输入
2
样例输出
2 20
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
printf("%d %d",n,10*n);
return 0;
}
题目 2997: 梯形面积
题目描述
在梯形中阴影部分面积是150平方厘米,求梯形面积。
输入格式
(无)
输出格式
输出梯形面积(保留两位小数)。
样例输入
无
样例输出
无
直接算出答案输出就行了
#include<stdio.h>
int main()
{
printf("400.00");//记得题目要求需要保留小数
return 0;
}
题目 1073: 弟弟的作业
题目描述
你的弟弟刚做完了“100以内数的加减法”这部分的作业,请你帮他检查一下。每道题目(包括弟弟的答案)的格式为a+b=c或者a-b=c,其中a和b是作业中给出的,均为不超过100的非负整数;c是弟弟算出的答案,可能是不超过200的非负整数,也可能是单个字符"?",表示他不会算。
输入格式
输入文件包含不超过100行,以文件结束符结尾。每行包含一道题目,格式保证符合上述规定,且不包含任何空白字符。输入的所有整数均不含前导0。
输出格式
输出仅一行,包含一个非负整数,即弟弟答对的题目数量。
样例输入
1+2=3 3-1=5 6+7=? 99-0=99
样例输出
2
注意:这道题注意一下getchar()的引用避免进入死循环,没加getchar()的应该都深有体会。
一开始我是这样写的,时间超限50
#include<stdio.h>
int main()
{
int a,b;//a为加数,b为被加数
char m,n;//m为+号或-号,n为等号
int c;//弟弟输出的答案
int count=0;//用来计算弟弟正确的数量
while(~scanf("%d%c%d=%d",&a,&m,&b,&c))
{
if(m=='+'&&(a+b)==c||m=='-'&&(a-b)==c)
{
count++;
}
else
{
getchar();// 不写的话碰到1+1=?会死循环,getchar();遇 到scanf输入异常时 getchar清空缓存区数据;
}
}
printf("%d",count);
return 0;
}
改了一下这样写就没什么问题,有时候真的感觉差那么一点点,就是不给过是什么感觉。
#include<stdio.h>
int main()
{
int a,b;//a为加数,b为被加数
char m,n;//m为+号或-号,n为等号
int c;//弟弟输出的答案
int count=0;//用来计算弟弟正确的数量
while(~scanf("%d%c%d=%d",&a,&m,&b,&c))
{
if(m=='+'&&(a+b)==c||m=='-'&&(a-b)==c)
{
count++;
}
else
{
getchar();// 不写的话碰到1+1=?会死循环,getchar();遇 到scanf输入异常时 getchar清空缓存区数据;
}
}
printf("%d",count);
return 0;
}