杭电oj2000-2011
2000 ASCII码排序
#include <stdio.h>
int main(){
char a,b,c,t;
while(scanf("%c%c%c", &a, &b, &c)!=EOF){
getchar();#必须得加这玩意
if(a>b){
t = a;
a = b;
b = t;
}
if(a>c){
t = a;
a = c;
c = t;
}
if(b>c){
t = b;
b = c;
c = t;
}
printf("%c %c %c\n", a,b,c);
}
}
一开始没有添加getchar()函数引发错误,后来查看大佬的wp知道了原因这里引用大佬的解释:
第一次没有加getchar()函数,结果不正确,运行时,第一次输入三个字符排序正确,可是后面再输入时输出就会错误。通过查看别人类似问题的分析,知道了其中缘由。从键盘输入的字符,会存放到缓冲区中,包括回车符。如输入“abc回车”之后,缓冲区中存了有四个字符'a'、'b'、'c'、'\n',如果上面程序中没有getchar(),则第一次从缓冲区中提取了三个字符之后,还剩下了一个'\n',则下次再输入三个字符时,缓冲区中会把上次剩下的回车符也算进去,这样处理起来就会有问题。getchar()是从缓冲区中读取一个字符,如果只是去除缓冲区中的字符,不需要用赋值表达式,直接使用getchar();即可,当然,使用赋值表达式也可以,如:m=getchar();。上面程序中使用了getchar()之后,就可以把每次输入三个字符之后的回车符吸收掉,这样结果就正确了。
2001 计算两点间的距离
#include <stdio.h>
#include <math.h>
int main(){
double x1,y1,x2,y2,d;
while(scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2)!=EOF){
d= sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2));
printf("%.2lf\n", d); }
}
2002 计算球体积
#include <stdio.h>
#define PI 3.1415927 int main(){
double x, v;
while(scanf("%lf", &x)!=EOF){
v = *PI*x*x*x/;
printf("%.3lf\n", v);
}
}
2003 求绝对值
#include <stdio.h>
int main(){
double x,y;
while(scanf("%lf", &x)!=EOF){
y = x;
if(y<){
y = -x;
}
printf("%.2lf\n", y);
}
}
2004 求绝对值
#include <stdio.h>
int main(){
int x;
while(scanf("%d", &x)!=EOF){
if(x< || x>){
printf("Score is error!\n");
}
if(x>= && x<){
printf("E\n");
}
if(x>= && x<){
printf("D\n");
}
if(x>= && x<){
printf("C\n");
}
if(x>= && x<){
printf("B\n");
}
if(x>= && x<=){
printf("A\n");
}
}
}
2005 第几天?
#include <stdio.h>
int main(){
int a,b,c,i,days;
int mon[] = {,,,,,,,,,,,};
while(scanf("%d/%d/%d", &a,&b,&c)!=EOF){
if((a%== && a% !=) || (a% == )){
days = ;
mon[] = ;
for(i=; i<b-; i++){
days += mon[i];
}
days += c;
printf("%d\n", days);
}else{
days = ;
mon[] = ;
for(i=; i<b-; i++){
days += mon[i];
}
days += c;
printf("%d\n", days);
}
} }
2006 求奇数的乘积
#include <stdio.h>
int main(){
int n, i ,mul;
while((scanf("%d", &n))!=EOF){
mul = ;
while(n--){
scanf("%d", &i);
if(i%!=){
mul = mul*i;
}
}
printf("%d\n", mul);
} }
2007 平方和与立方和
这玩意首先要判断输入两个数的大小,不然就是错的
#include <stdio.h>
int main(){
int n,m,squ,cub,i;
while((scanf("%d %d", &n,&m))!=EOF){
squ=;
cub=;
if(n<m){
for(i=n;i<=m;i++){
if(i%==){
squ += i*i;
}else{
cub += i*i*i;
}
}
printf("%d %d\n",squ,cub);
}else{
for(i=m;i<=n;i++){
if(i%==){
squ += i*i;
}else{
cub += i*i*i;
}
}
printf("%d %d\n",squ,cub);
} } }
2008 数值统计
#include <stdio.h>
int main(){
int n,x,y,z;
double i;
while((scanf("%d", &n))!=EOF){
if(n==){
continue;
}else{
x=;
y=;
z=;
while(n--){
scanf("%lf", &i);
if(i<){
x += ;
}else if(i==){
y += ;
}else if(i>){
z += ;
}
} }
printf("%d %d %d\n", x,y,z);
}
return ;
}
2009 求数列的和
#include <stdio.h>
#include <math.h>
int main(){
int m;
double i,sum,n;
while(scanf("%lf %d", &n,&m)!=EOF){
sum = ;
while(m--){
sum += n;
n = sqrt(n); }
printf("%.2lf\n", sum);
}
}
2010 水仙花数
最后输出的时候最后不允许有空格,因此第一个数的输出与后面数的输出不一样。
#include <stdio.h>
int main(){
int m,n,a,b,c,i,flag;
while(scanf("%d %d",&m,&n)!=EOF){
flag = ;
for(i=m;i<=n;i++){
a=i/;
b=i%/;
c=i%;
if(i==a*a*a+b*b*b+c*c*c){
flag += ;
if(flag==){
printf("%d",i);
}else{
printf(" %d",i);
}
}
}
if(flag==){
printf("no");
}
printf("\n");
}
}
2011 多项式求和
#include <stdio.h>
int main(){
int n,i;
double a,sum,j;
scanf("%d", &n);
while(n--){
sum = ;
scanf("%lf",&a);
for(i=;i<=a;i++){
if(i%==){
j = i;
sum -= /j;
}else{
j = i;
sum += /j;
}
}
printf("%.2lf\n", sum);
}
}
杭电oj2000-2011的更多相关文章
- 杭电acm阶段之理工大版
想參加全国软件设计大赛C/C++语言组的同学,假设前一篇<C和指针课后练习题总结>没看完的,请先看完而且依照上面的训练做完,然后做以下的训练. 传送门:http://blog.csdn.n ...
- 杭电ACM题单
杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 1007 经典问题,最 ...
- 杭电acm习题分类
专注于C语言编程 C Programming Practice Problems (Programming Challenges) 杭电ACM题目分类 基础题:1000.1001.1004.1005. ...
- acm入门 杭电1001题 有关溢出的考虑
最近在尝试做acm试题,刚刚是1001题就把我困住了,这是题目: Problem Description In this problem, your task is to calculate SUM( ...
- 杭电acm 1002 大数模板(一)
从杭电第一题开始A,发现做到1002就不会了,经过几天时间终于A出来了,顺便整理了一下关于大数的东西 其实这是刘汝佳老师在<算法竞赛 经典入门 第二版> 中所讲的模板,代码原封不动写上的, ...
- 杭电OJ——1198 Farm Irrigation (并查集)
畅通工程 Problem Description 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通工程"的目标是使全省任何两个城镇间都可 ...
- 杭电ACM分类
杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...
- 高手看了,感觉惨不忍睹——关于“【ACM】杭电ACM题一直WA求高手看看代码”
按 被中科大软件学院二年级研究生 HCOONa 骂为“误人子弟”之后(见:<中科大的那位,敢更不要脸点么?> ),继续“误人子弟”. 问题: 题目:(感谢 王爱学志 网友对题目给出的翻译) ...
- C#利用POST实现杭电oj的AC自动机器人,AC率高达50%~~
暑假集训虽然很快乐,偶尔也会比较枯燥,,这个时候就需要自娱自乐... 然后看hdu的排行榜发现,除了一些是虚拟测评机的账号以外,有几个都是AC自动机器人 然后发现有一位作者是用网页填表然后按钮模拟,, ...
- 杭电ACM2076--夹角有多大(题目已修改,注意读题)
杭电ACM2076--夹角有多大(题目已修改,注意读题) http://acm.hdu.edu.cn/showproblem.php?pid=2076 思路很简单.直接贴代码.过程分析有点耗时间. / ...
随机推荐
- [BZOJ2734][HNOI2012] 集合选数(状态压缩+思维)
Description 题目链接 Solution 可以根据条件构造出一个矩阵, 1 3 9 27 81... 2 6 18.... 4 12 36... 这个矩阵满足\(G[i][1]=G[i-1] ...
- nodejs基础1
nodejs学习网站: https://github.com/alsotang/node-lessons 1.全局对象 (1)node中没有window对象,有global对象替代window对象 g ...
- centos7.3配置guacamole
目录 1 安装guacamole所需要的依赖库 2 安装配置tomcat,架设服务 2.1 下载tomcat 2.2 配置环境变量,使tomcat可以找到guacamole客户端配置 2.3 安装gu ...
- Android学习记录(9)—Android之Matrix的用法
Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放.平移.旋转等操作. 首先介绍一下矩阵运算.加法和减法就不用说了,对应位相加就好.图像处理,主要用到的是乘法 .下面 ...
- HTML DOM简易学习笔记
文字版:https://github.com/songzhenhua/github/blob/master/HTML DOM简易学习笔记.txt 学习地址:http://www.w3school.co ...
- Python+Selenium框架设计篇之-什么是POM
前面我们介绍了Python中的单元测试框架unittest,以后我们所有的测试类文件,都采用unittest来辅助我们进行debug和脚本开发.搞定了debug机制和确定了unittest来进行创建和 ...
- 1、python 循环控制
案例1: lucky_num = 19 input_num = int(input("Input the guess number:")) if input_num == luc ...
- nginx 快速查看配置文件的方法
查看nginx实际调用的配置文件 1.查看nginx路径 ps aux|grep nginx root ?? S :43上午 :00.08 nginx: worker process root ?? ...
- Beta
目录 过去存在的问题 任务分工 规范 后端总结 卉卉 家灿 前端总结 绪佩 青元 恺琳 宇恒 丹丹 算法&API接口 家伟 鸿杰 一好 文档&博客撰写 政演 产品功能 我们已经坐了哪些 ...
- android自定义SlideMenu
完美解决ListView中子项焦点不可被Touch的BUG. 1.在Ecl ...