24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1358  |  回复: 16
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

136391618

木虫 (正式写手)

物理骨灰迷

[求助] 【求助】小程序改错

题目如下
CODE:
输入 n 值,输出如下例( n=4 )所示的数字菱形。
  4
 434
43234
4321234
43234
 434
  4
输入: n
输出: 数字菱形
友情提示:同学们总结一下打印星号组成的实心图形程序的编程思路:第一步,打印星号组成的正方形;第二步,改变每行星号的个数,打印每行星号数量不一样的图形;如果是空心图形,每行第一个和最后一个位置输出星号,其他位置输出空格。
现在我们练习输出变化的字符,在打印星号图形的基础上,原来输出*号的位置,将printf("*");改为printf("%2d",x);当然,原来输出一个*号的地方只占一个字符的位置,现在都要改为2个字符的位置,如果输出的是数字且多于2个,则要是%3d或%4d了。
x是多少呢?则要寻找其规律,就是该输出位置与所在行列的关系。

注意给出的测试用例,输出的数字是左对齐啊。

我的程序是
CODE:
#include
#include
int main(int argc, char *argv[])
{   int n,i,j,x,y;
    scanf("%d",&n);
   for(j=1;j<=2*n-1;j++)
        { for(i=1;i<=n-1+j;i++)
             { if(j>n) {y=j;y=2*n-y;}
               if(i>n) {x=i;x=2*n-x;}
               if(x+y<=n) printf("  ");
               if(x+y>n)  printf("%-2d",2*n-x-y+1);
             }
          printf("\n");   
        }   
     system("PAUSE");       
     return 0;
}

能不能改对啊, 我都没想明白错在哪?
如果实在改不对  请大家有空的写一个程序 让我学习学习

[ Last edited by 136391618 on 2012-5-1 at 14:03 ]
回复此楼
爱因斯坦我来了
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
可以看做1个循环,里面嵌套两个循环
CODE:
print(int n)
{
     for(int i=0;i     {

}
}

8楼2012-05-02 18:19:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖

★ ★
136391618: 金币+2, ★★★很有帮助, 我自己的程序还有没有的救啊?死都发现不了出在哪里 2012-05-02 20:33:43
那个回复快了!
可以看做1个循环,里面嵌套两个循环。
CODE:
void  print(int n)
{
     int line=0;
     int order,reorder,number,k;
     for(line=0,;line      {
          number=n;
          for(order=0,k=0;order<=line;order++,k=1)
          {
               number-=k;
               printf("%d",number);
         }
         
          for(reorder=0;reorder                     printf("%d",++number);     
      
        printf("\n");
     }
}

完成了上面一半,下面自己想想看
9楼2012-05-02 18:59:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖

引用回帖:
11楼: Originally posted by 136391618 at 2012-05-02 20:30:48:
弱弱的问一下  void print 是什么东西    还有怎样把你的代码放到devc++中运行啊??总是编译失败

void print()是一个函数,你没学过自定义函数么,我那个缺少主函数的,你新建一个project,在main函数上面贴上我的代码,然后再main函数里面写上一句print(4);然后编译运行一下看看
12楼2012-05-03 07:42:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijie169

铜虫 (著名写手)

【答案】应助回帖

引用回帖:
13楼: Originally posted by 136391618 at 2012-05-03 08:17:40:
#include <stdio.h>
#include <stdlib.h>
void  print(int n)
{
     int line=0;
     int order,reorder,number,k;
     for(line=0;line<n;line++)
     {
          number=n;
...

这些细节你就慢慢自己想,只能给你一个idea
14楼2012-05-03 10:45:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 136391618 的主题更新
信息提示
请填处理意见