平方和与立方和
给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
Input
输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。
Output
对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
你可以认为32位整数足以保存结果。
Sample Input
1 3 2 5
Sample Output
4 28 20 152
这个题并没有说m和n哪个大哪个小,所以必须自己先把大小位置定好,而且与HDU2006一样,清零位置需要注意...还犯错在t的平方与立方。一开始写的是(以偶数举例...)t=t*t; sum+=t;这样会使t的值跳值,应该直接些sum+=t*t;不应该定义t的值的!
#include <stdio.h>
int main()
{
int m,n,sum1,sum2,t;
while(scanf("%d%d",&m,&n)!=EOF)
{
sum1=sum2=0;
if(m>n)
{
t=m;
m=n;
n=t;
}
for(t=m;t<=n;t++)
{
if(t%2==0)
{
sum1+=t*t;
}
else
{
sum2+=t*t*t;
}
}
printf("%d %d\n",sum1,sum2);
}
return 0;
}
数值统计
统计给定的n个数中,负数、零和正数的个数。
Input
输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数;如果n=0,则表示输入结束,该行不做处理。
Output
对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。
Sample Input
6 0 1 2 3 -1 0 5 1 2 3 4 0.5 0
Sample Output
1 2 3 0 0 5
同样需要注意清零顺序,还有就是我天真的以为!=EOF或者!=0的时候输入0就自动退出了,但实际上应该加一个判断条件即if(n==0)break;
查了一些大佬的博客后是因为(scanf(“%d”,&n)!=0)的意思是:scanf(“%d”,&n)成功输入则为1,未输入则为0,所以会出现一直在等待输入的情况..与输入是否为0是不同概念 ,所以我输入0,他判断仍然是1,还是会继续的...学习到了...
#include <stdio.h>
int main()
{
int count1,count2,count3,n;
double t;
while(scanf("%d",&n)!=EOF)
{
count1=count2=count3=0;
if(n==0)
break;
while(n--)
{
scanf("%lf",&t);
if(t<0)
count1++;
else if(t==0)
count2++;
else if(t>0)
count3++;
}
printf("%d %d %d\n",count1,count2,count3);
}
return 0;
}