Problem Description
给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
Input
输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m 和 n 组成。
Output
对于每组输入数据,输出一行,应包括两个整数x 和 y ,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
你可以认为32 位整数足以保存结果。
Sample Input
1 3
2 5
Sample Output
4 28
20 152
Author
lcy
Source
C语言程序设计练习(一)
Recommend
JGShining
#include
int main()
{
int d1,d2,n,out1,out2,chg;
while(scanf("%d%d",&d1,&d2)!=EOF)
{
out1=0;
out2=0;
if(d1>d2){chg=d1;d1=d2;d2=chg;}
for(n=d1;n
如果输入的两数大小颠倒的话也要保证能够正常输出
脑残了,第一次做这个题的时候输入的是%c%c,纠结了好久找不到错……
成绩转换
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 61282 Accepted Submission(s): 26616
Problem Description
输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
Input
输入数据有多组,每组占一行,由一个整数组成。
Output
对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input
Sample Output
Author
lcy
Source
解:
#include
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
if(n>100||n=90)
{
printf("An");
}
else
{
if(n>=80)
{
printf("Bn");
}
else
{
if(n>=70)
{
printf("Cn");
}
else
{
if(n>=60)
{
printf("Dn");
}
else
{
printf("En");
}
}
}
}
}
}
return 0;
}
没什么好说的,一次过~注意下多重if语句不要写晕掉就好了……
求绝对值
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 54821 Accepted Submission(s): 27276
Problem Description
求实数的绝对值。
Input
输入数据有多组,每组占一行,每行包含一个实数。
Output
对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果保留两位小数。
Sample Input
Sample Output
Author
lcy
Source
解:
#include
int main()
{
double a;
while(scanf("%lf",&a)!=EOF)
{
if(a
fabs()解法
计算球体积
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 67479 Accepted Submission(s): 27011
Problem Description
根据输入的半径值,计算球的体积。
Input
输入数据有多组,每组占一行,每行包括一个实数,表示球的半径。
Output
输出对应的球的体积,对于每组输入数据,输出一行,计算结果保留三位小数。
Sample Input
Sample Output
4.189 14.137
Hint
#define PI 3.1415927
Author
lcy
Source
解:
#include
#define PI 3.1415927
void main()
{
double r,v;
while(scanf("%lf",&r)!=EOF)
{
r=r*r*r;
v=(float)4/(float)3;
v=v*r*PI;
printf("%.3fn",v);
}
}
注意浮点型除法的运算方法:(float)a/(float)b。否则的话是不能计算小数部分的。还有就是关于while语句和!=EOF的用法,很多次错在这个上面了……
ASCII码排序
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 70659 Accepted Submission(s): 29183
Problem Description
输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。
Input
输入数据有多组,每组占一行,有三个字符组成,之间无空格。
Output
对于每组输入数据,输出一行,字符中间用一个空格分开。
Sample Input
Sample Output
Author
lcy
Source
解:
#include
int main()
{
char a,b,c,d,x,y,z;
while(scanf("%c%c%c%c",&a,&b,&c,&d) != EOF)
{
x=ab?a:b;
z=z>c?z:c;
y=a+b+c-x-z;
printf("%c %c %cn",x,y,z);
}
}
这是我一开始想出来的代码,感觉非常的冗长。要在打代码之前提前打草。好在这道题对长度没有限制……还有就是要看清楚到底是从小到大还是从大到小排列。注意别写错了。
下面放上一个优化的代码:
#include
main()
{
char a,b,c,d;
while(scanf("%c %c %c",&a,&b,&c)!=EOF)
{
getchar();
if(a>=b)
{
if(c>=a)
printf("%c %c %cn",b,a,c);
else if(b>=c)
printf("%c %c %cn",c,b,a);
else if(b=b)
printf("%c %c %cn",a,b,c);
else if(c>=a)
printf("%c %c %cn",a,c,b);
else if(a>c)
printf("%c %c %cn",c,a,b);
}
}
}