博主:命运之光
专栏:算法修炼之练气篇
题目 2778: 判断数正负
题目描述
给定一个整数N,判断其正负。
输入格式
一个整数N(-109 <= N <= 109)
输出格式
如果N > 0, 输出positive;
如果N = 0, 输出zero;
如果N < 0, 输出negative。
样例输入
1
样例输出
positive
主要就是if语句的运用,比较简单,见代码:
intmain() { intn;//int的取值范围2147483648到2147483647//够用了,所以就不写long long了//顺便说一下long long的取值范围是-9223372036854775808到9223372036854775807scanf("%d",&n); if(n>0) { printf("positive"); } if(n==0) { printf("zero"); } if(n<0) { printf("negative"); } return0; }
题目 2780: 奇偶数判断
题目描述
给定一个整数,判断该数是奇数还是偶数。
输入格式
输入仅一行,一个大于零的正整数n。
输出格式
输出仅一行,如果n是奇数,输出odd;如果n是偶数,输出even。
样例输入
5
样例输出
odd
intmain() { intn; scanf("%d",&n); if(n%2==0) { printf("even"); } else { /*发这个就想吐槽一下这个输出*/printf("odd");//欧豆豆,笑死我了!哈哈哈哈哈哈哈哈哈! } return0; }
题目 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
一道数学题,与其说是算法其实主要就是解一道数学题。
intmain() { doubler1,z1,r2,z2; scanf("%lf %lf %lf %lf",&r1,&z1,&r2,&z2); printf("%.2lf",(r1*z1-r2*z2)/(z1-z2)); return0; }
题目 2998: 电影票
题目描述
已知一位小朋友的电影票价是10元,计算x位小朋友的总票价是多少?
输入格式
输入x。
输出格式
人数和电影票总价,中间用一个空格隔开。
样例输入
2
样例输出
2 20
intmain() { intn; scanf("%d",&n); printf("%d %d",n,10*n); return0; }
题目 2997: 梯形面积
题目描述
在梯形中阴影部分面积是150平方厘米,求梯形面积。
输入格式
(无)
输出格式
输出梯形面积(保留两位小数)。
样例输入
无
样例输出
无
直接算出答案输出就行了
intmain() { printf("400.00");//记得题目要求需要保留小数return0; }
题目 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
intmain() { inta,b;//a为加数,b为被加数charm,n;//m为+号或-号,n为等号 intc;//弟弟输出的答案 intcount=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); return0; }
改了一下这样写就没什么问题,有时候真的感觉差那么一点点,就是不给过是什么感觉。
intmain() { inta,b;//a为加数,b为被加数charm,n;//m为+号或-号,n为等号intc;//弟弟输出的答案intcount=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); return0; }