永发信息网

【朝answer】acm题wronganswer为什么?DescriptionJames得到了一...

答案:2  悬赏:70  手机版
解决时间 2021-03-05 12:51
【朝answer】acm题wronganswer为什么?DescriptionJames得到了一...
最佳答案
【答案】 主要问题出在比较函数上
  #include<stdio.h>#include<stdlib.h>#include<string.h>#define N 101#define M 11// 需要直接比较double,而不能返回差值int compare(const void *a, const void *b){double* da = (double*)a;double* db = (double*)b;if (*da > *db) {return -1;}else if (*db > *da) {return 1;}return 0;}// int main(){double a[M][N];int m = 0,n = 0;int i, j;double sum, Sum;while (scanf("%d %d", &n, &m) != EOF && m != 0 && n != 0)//***有可能会出错 ***{//大循环 sum = 1; Sum = 0;//初始化for (j = 0; j<n; j++)for (i = 0; i < m; i++)scanf("%lf", &a[i][j]);//输入 for (i = 1; i <= m; i++)qsort(a[i], m, sizeof(double), compare);//从大到小排序for (j = 0; j<n; j++){for (i = 1; i <= m; i++)sum *= a[i][j];Sum += sum;sum = 1;//初始化 }printf("%.4f\n", Sum);}//大循环 } 追问: 我是在网上学的这个compare函数的写法;而且在cfree上也是可以正确的运行的!是不是cfree的编译器和acm的编译器不太一样啊!那我该用什么软件来测试acm的题呢?求大牛推荐一下!!! 追答: 因为double作减法以后是一个double,这个double如果是-1到1之间的话,转换成int以后就是0
  返回0意味着你告诉编译器两个double是等价的(即先后不分),但是其实这不是你想要的结果
全部回答
谢谢解答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我想问一下做纳豆可以放点盐吗?
衣锦地址在哪,我要去那里办事
外柔内刚的女人内心是怎样的?心是硬的,还是
如果被审计单位的存货存放在多个地点,注册会
泸州化工厂子弟中学校地址有知道的么?有点事
谁有9位的QQ号?
好听的果园名字
我要捐肾请问在深圳什么医院可以捐了
吉林省广合水利水电工程质量检测有限公司在哪
转同义句 1.Why do you send her flowers ---
上海~西安的Z92会不会也晚点?
最后的神迹之哈尔法斯
(四)小议“给力”阅读答案
对对子,怎么填。 “蒸蒸日上” 对 ( )
一个量程为100ml的量筒竖直放在水平桌面上,10
推荐资讯
炮制后能缓和苦燥之性,增强滋阴降火作用的是
这是打什么妖怪
没有在房产局备案的房子可以卖吗
东方名剪专业美发烫染沙龙我想知道这个在什么
雪默的所有小说(包含:此情可念)
美联储退出qe预示着什么
移动一个数字,使“1170=2”成立
怎么养小鸡崽儿啊!紧急!!!
彭帅wta天津网球赛冠军奖金多少
喷漆导致的车身油漆凹坑原因怎么分析
可比电脑销售中心地址在哪,我要去那里办事
如何采集PWM的电压值?如题 谢谢了
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?