杭电1170哪里错了?http://acm.hdu.edu.cn/showproblem.php?pid=1170

#include<stdio.h>
main()
{
int t,a,b;
char c,d;
scanf("%d",&t);
getchar();
while(t)
{
t--;
scanf("%c%d %d",&c,&a,&b);
getchar();
switch(c)
{
case'+':printf("%d",a+b);break;
case'-':printf("%d",a-b);break;
case'*':printf("%d",a*b);break;
case'/':printf("%0.2lf",a*1.00/b);break;
}
printf("\n");
}
}

第1个回答  2011-05-01
除法不一定都是浮点型数据吧!
比如输入:
/ 2 1
的时候输出该为2,但是你的输出为2.00
贴个代码:
#include <stdio.h>
int main()
{
int a,b,t;
char c;
scanf("%d",&t);
getchar();
while(t--)
{
scanf("%c%d%d",&c,&a,&b);
getchar();
if(c=='+')
printf("%d\n",a+b);
if(c=='-')
printf("%d\n",a-b);
if(c=='/')
{
if(a%b)
printf("%.2lf\n",1.0*a/b);
else
printf("%d\n",a/b);
}
if(c=='*')
printf("%d\n",a*b);
}
return 0;
}
第2个回答  2011-05-01
#include<stdio.h>
main()
{
int t,a,b;
char c,d;
scanf("%d",&t);
getchar();
while(t)
{
t--;
scanf("%c%d %d",&c,&a,&b);
getchar();
switch(c)
{
case'+':printf("%d",a+b);break;
case'-':printf("%d",a-b);break;
case'*':printf("%d",a*b);break;
case'/':if(a%b) printf("%0.2lf",a*1.00/b); // 如果a不能整除b
else printf("%d",a/b); break; // 如果a能整除b
}
printf("\n");
}
}本回答被提问者采纳

杭电acm1157 http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1157
3、排序的时候你用a.length,这是一个固定值,而不是N,你这里是1000,这样就把数组中后面没用的值也参与进来排序了。

求教 二叉树
如果要排序某些数的时候,可以先把第一个数当成根节点,然后把每个要插入的树按照规则放到树里面:从根开始,比当前节点大的就往左儿子走,比当前节点小的就往右儿子走。走到某个空位时就可以插入到这里。最后用先序或者后序遍历输出这棵树,那么这些就排序好了。二叉树真的是博大精深的说,只是稍微...

...http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1301 怎么改,追分_百 ...
1、添加头文件:#include<string.h> 2、修改宏定义: #define inf 0x3f3f3f3f 当然这只能保证编译通过。

求高手详细讲解http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1003
然后把n1,n2,n3用同样的方式分段,如此迭代,从而大大简化了数据量。最后用排列组合的方式求出最大的Sum,起始点为段的起始点。代码有时间另附。

杭电2043哪里错了?http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=2043
include<stdio.h> include<string.h> main(){ int a,b,c,d,i,j,k,e,q,w;char s[51];scanf("%d",&a);while(a){ b=0;c=0;d=0;k=0;e=0;a--;scanf("%s",s); \/\/ 用scanf比较安全, gets难处理.if(strlen(s)>16||strlen(s)<8) \/\/ 你忘了检测长度 { printf("NO\\n...

高手帮忙解决一下!是acm.tzc.edu.cn上的1004题
http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1052 我已经帮你把TZC的那题AC了 下面是代码 include<stdio.h> include<string.h> include<stdlib.h> int cmp(const void *a,const void*b){ return *(int*)b-*(int*)a;} int n;void inti(int a[]){ int i;for(i=0;i<n;i++)sc...

...http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=2048 怎么做的啊,求题...
这题是用错排思路做的 include<string.h> include<stdio.h> typedef __int64 lld;const lld MAX=25;double fac[MAX];double h[MAX];int main(){ lld n;lld i;h[0]=0;h[1]=0;h[2]=1;for(i=3;i<MAX;i++)h[i]=(i-1)*(h[i-1]+h[i-2]);fac[0]=1;for(i=1;i<MAX...

...http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=1089
所以 while( scanf("%d%d",&a,&b)==2) 就是判断是不是成功读取了2个数字 当scanf()遇到End-of-File的时候会特殊的返回-1,也就是EOF 所以 while(scanf("%d%d",&a,&b)!=EOF) 就是判断是不是还没有读到EOF 在这个题目里面,两种判断都是成立的 至于你提出的 while(scanf("%d%d",&...

杭电ACM 新生晚会
对于N=30, M=15,你的程序肯定求出错误答案,不信你用计算器试试。因为你的中间步骤,temp1=temp1*n会溢出。网上有求组合数的模板,你不妨找一下,用起来又方便又正确。

人见人爱A^B http:\/\/acm.hdu.edu.cn\/showproblem.php?pid=2035
首先建议基础打好再做题 10000^3就已经超过了int范围,楼上的long10000^10也超过了,而题目要的是10000^10000,用double倒是可以,但是double的损失精度会让你的最后3位拿到的不准。所以直接做如同开玩笑一样。你上面的代码是a*b%c=(a%c)*(b%c)的一个优化形式 先给你讲朴素的做法:是用a*b%...

相似回答
大家正在搜