设为首页 加入收藏

TOP

C语言初学者代码中的常见错误与瑕疵(7)(二)
2014-11-23 21:27:41 来源: 作者: 【 】 浏览:49
Tags:语言 学者 代码 常见 错误 瑕疵
小一样),但其实是瞎猫碰到死耗子,侥幸而已。
  此外的两处小瑕疵就是rectangle()函数定义中的temp变量忘记删除了,循环体内删除语句时不干净,有一“;”也忘记删除了。
  再有就是
sum += (x-i+1)*(y-j+1);
  这个算法我没看懂,不知道是否正确。
重构:
  其实原来代码已经改得差不多了,只剩下少许小错和瑕疵。我在这里只说一下我的算法:
  我的算法是,穷举出两个点(P1,P2)的所有组合情况,只要P1可以是某个矩形的左上角,P2可以是某个矩形的右下角(P1_X
复制代码
1 /*
2 矩形的个数
3 在一个3*2的矩形中,可以找到6个1*1的矩形,4个2*1的矩形3个1*2的矩形,
4 2个2*2的矩形,2个3*1的矩形和1个3*2的矩形,总共18个矩形。
5 给出A,B,计算可以从中找到多少个矩形。
6
7 输入:
8 本题有多组输入数据(<10000),你必须处理到EOF为止
9 输入2个整数A,B(1<=A,B<=1000)
10
11 输出:
12 输出找到的矩形数。
13
14 样例:
15
16 输入:
17 1 2
18 3 2
19
20 输出:
21 3
22 18
23
24 作者:薛非
25 出处:http://www.cnblogs.com/pmer/ “C语言初学者代码中的常见错误与瑕疵”系列博文
26
27 */
28
29 #include
30
31 int count( int , int );
32
33 int main( void )
34 {
35 int A , B ;
36
37 while ( printf( "输入2个整数A,B(1<=A,B<=1000)" ),
38 scanf( "%d%d" , &A , &B )!= EOF
39 )
40 {
41 printf( "%d\n" , count( A , B ) );
42 }
43
44 return 0;
45 }
46
47 int count( int A , int B )
48 {
49 int x1 , y1 ;//第一个点的坐标
50 int x2 , y2 ;//第二个点的坐标
51 int num = 0 ;
52
53 for ( x1 = 0 ; x1 <= B ; x1 ++ )
54 for ( y1 = 0 ; y1 <= A ; y1 ++ )//穷举第一个点的各种可能
55 for ( x2 = 0 ; x2 <= B ; x2 ++ )
56 for ( y2 = 0 ; y2 <= A ; y2 ++ )//穷举第二个点的各种可能
57 {
58 if ( x1 < x2 && y1 < y2 )
59 num ++ ;
60 }
61
62 return num ;
63 }
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇纯C语言写的贪吃蛇源码 下一篇纯C语言写的拼图游戏源码

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: