飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 3052|回复: 4

[C/C++] 关于gotoxy()打印输入任意边长的疑惑....(已解决~~!)

[复制链接]
  • TA的每日心情
    开心
    2022-4-1 09:59
  • 签到天数: 76 天

    [LV.6]常住居民II

    发表于 2010-12-26 23:52:01 | 显示全部楼层 |阅读模式
    本帖最后由 theend 于 2010-12-29 13:51 编辑

    看了Nisy大大讲的gotoxy(),
    想用这个函数实现输入任意边长,按其边长打印棱形,
    几本上实现了,可第一行却是全*号,
    求解?共同探讨一下,多谢~~!
    自己想了很久,也直接打出x,y了,可还是没明白问题出在哪?
    1. main()
    2. {
    3.         int len;
    4.         int i;
    5.         int j;
    6.         printf("input a num.: ");
    7.         scanf("%d",&len);
    8.         clrscr();
    9.         for(i = 0; i < 2*len; i++)
    10.         {
    11.                 for(j = 0; j < 2*len; j++)
    12.                 {
    13.                         if(j == j - i + 1 || j == i + len - 1 || j == abs(len - i) + 1 || j == 2*len - (i - len) -1)
    14.                         {
    15.                                         gotoxy(j,i);
    16.                                         printf("*");
    17.                         }
    18.                 }
    19.         }
    20. }
    复制代码
    仔细反复看了代码,看来还是对gotoxy()的使用理解不清,
    初始化i,j要从1开始,嘿嘿。
    另外:
    1、for循环里的条件有错误:j == j(这里应该为len,棱形边长) - i + 1;
    2、错误1条件其实与j == abs(len - i) + 1表达的内容是一致的,直接删掉错误1即可;
    修正后的for循环如下:

    1. for(i = 1; i < 2*len; i++)
    2. {
    3.     for(j = 1; j < 2*len; j++)
    4.     {
    5.         if(j == abs(len - i) + 1 || j == len + i - 1 || j == 2*len - (i-len) - 1)
    6.         {
    7.             gotoxy(j,i);
    8.             printf("*");
    9.         }
    10.     }
    11. }
    复制代码

    相关帖子

    PYG19周年生日快乐!
  • TA的每日心情
    慵懒
    2019-3-12 17:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2010-12-27 17:49:44 | 显示全部楼层
    加油!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-4-1 09:59
  • 签到天数: 76 天

    [LV.6]常住居民II

     楼主| 发表于 2010-12-27 18:07:12 | 显示全部楼层
    回复 2# whypro

    嘿嘿,加油的同时,帮我探讨一下啊~~!
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-12-28 15:53:32 | 显示全部楼层
    首先for循环的条件有问题。i=0的话,终止条件应该是i<2*len-1,j也同样。建议从1开始。。
    其次,算法部分的几个表达式看了半天没看懂。。。如果可以的话,解释一下每个表达式的含义吧。代码给别人看的话要多写注释。
    同是新人,共同努力!
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-4-1 09:59
  • 签到天数: 76 天

    [LV.6]常住居民II

     楼主| 发表于 2010-12-29 12:54:41 | 显示全部楼层
    首先for循环的条件有问题。i=0的话,终止条件应该是i
    sosonemo 发表于 2010-12-28 15:53


    感谢提醒,看了之后茅塞顿开啊,嘿嘿
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表