杭电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 思路很简单.直接贴代码.过程分析有点耗时间. / ...
随机推荐
- 779. K-th Symbol in Grammar
class Solution { public: int kthGrammar(int N, int K) { return helper(N, K, false); } int helper(int ...
- js按钮点击事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 搭建Linpack
环境:vmware workstation14 + centos7(linux基本都可以) 一.开始安装mpich 1. 解决依赖gcc gcc-gfortran sudo yum install g ...
- 3771: Triple
3771: Triple 链接 题意 n个斧头,每个斧头的价值都不同(开始时没注意到),可以取1个,2个,3个斧头组成不同的价值,求每种价值有多少种组成方案(顺序不同算一种) 分析: 生成函数 + 容 ...
- Android Studio自定义模板代码
http://blog.csdn.net/h183288132/article/details/51916399 生成模板看上面这个博客就可以了,不再重复制造轮子. 不过需要补充的是: 还应该有下面的 ...
- 常见排序算法题(java版)
常见排序算法题(java版) //插入排序: package org.rut.util.algorithm.support; import org.rut.util.algorithm.Sor ...
- 宝石TD迷宫设计器
说起宝石TD,能追溯到我上高二那会,算来是2005年. 所谓一款TD类的魔兽RPG,宝石TD可以算是达到了TD迷宫的巅峰,三进三出更是别具匠心. 这个迷宫设计器是去年在焦作做的,只完成了迷宫设计功能, ...
- [C++] 拓展属性
inline函数 函数重载 占位参数和默认参数 /*__________________________________________________________________ 背景: C++ ...
- Leetcode 665.非递减数列
非递减数列 给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列. 我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i ...
- pandas.read_csv to_csv参数详解
pandas.read_csv参数整理 读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见:http://pandas.pydata.org/pandas ...