免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: ZZZZZZ~
打印 上一主题 下一主题

写个专家的题目,让大家批批 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-04-12 10:54 |只看该作者
cobras 发表于 2012-04-12 10:13
如果非要说出点什么,就说标准吧。
楼主的代码有些地方不符合c标准:
int main(void)或者int main(int argc, const char *argv[])
局部变量定义不能在有效语句中间。


Good!

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
12 [报告]
发表于 2012-04-12 11:08 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
13 [报告]
发表于 2012-04-12 11:44 |只看该作者
  1. if(ret < 0)
复制代码
如果是我
会这样写
  1. if(ret == EOF)
复制代码

论坛徽章:
0
14 [报告]
发表于 2012-04-12 11:50 |只看该作者
本帖最后由 KBTiller 于 2012-04-12 11:50 编辑

另一个可能是个人风格问题,无关对错

  1.             int score;
  2.             while(1)
  3.             {
  4.                 // scanf真难用!
  5.                 int ret = scanf("%d", &score);
  6.                 if(ret < 0)
  7.                 {
  8.                     fprintf(stderr, "input failed\n");
  9.                     return 1;
  10.                 }
  11.                 else if(ret == 0)
  12.                 {
  13.                     scanf("%*s");
  14.                     fprintf(stderr, "Try to input again, (score >= 0 and <= 100)\n");
  15.                 }
  16.                 else if(score < 0 || score > 100)
  17.                 {                    
  18.                     printf("score = %d\n", score);
  19.                     fprintf(stderr, "Try to input again, (score >= 0 and <= 100)\n");
  20.                 }
  21.                 else break;    // 输入OK
  22.             }
复制代码
我喜欢这样写

  1.             int score;
  2.             while(1)
  3.             {
  4.                 // scanf真难用!
  5.                 int ret = scanf("%d", &score);
  6.                 if(ret == EOF)
  7.                 {
  8.                     fprintf(stderr, "input failed\n");
  9.                     return 1;
  10.                 }
  11.                 if(ret == 0)
  12.                 {
  13.                     scanf("%*s");
  14.                     fprintf(stderr, "Try to input again, (score >= 0 and <= 100)\n");
  15.                     continue ;
  16.                 }
  17.                 if(score < 0 || score > 100)
  18.                 {                    
  19.                     printf("score = %d\n", score);
  20.                     fprintf(stderr, "Try to input again, (score >= 0 and <= 100)\n");
  21.                     continue ;
  22.                 }
  23.                 break;    // 输入OK
  24.             }
复制代码

论坛徽章:
0
15 [报告]
发表于 2012-04-12 16:35 |只看该作者
unistd 发表于 2012-04-11 16:41
float get_aver(const unsigned char *st, size_t count)
=================
一般来说,永远不要在程序中 ...



float比double快, 至少我知道在intel和amd的x86和x64处理器上不是这样的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP