24小时热门版块排行榜    

Znn3bq.jpeg
查看: 1523  |  回复: 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的回帖

136391618

木虫 (正式写手)

物理骨灰迷

怎么么没人呢???????????
爱因斯坦我来了
2楼2012-05-02 10:14:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

6865804

荣誉版主 (文坛精英)

smallerpig

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
136391618: 金币+2, 那两句话是我发现的值与 i j的关系 我是得应该写上注释的 2012-05-02 20:25:08
你的代码有点乱,
虽然只是测试代码,但是在别人看的时候你定义的任何变量最好都是有意义的或者注释过的,
我对C不太了解,,但是你在定义循环变量int i 和int j 的时候为什么要在循环外面定义呢?这样对程序的性能。。。这可能是习惯问题吧。
程序方面:
if(j>n) {y=j;y=2*n-y;}
               if(i>n) {x=i;x=2*n-x;}
这两句是判断什么的呢
从前我只是一只被人看不起的小菜鸟,经过这么多年的努力拼搏,奋发图强之后,我终于成功的成长为了一只老菜鸟!www.smallerpig.com
3楼2012-05-02 11:00:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

6865804

荣誉版主 (文坛精英)

smallerpig

引用回帖:
3楼: Originally posted by 6865804 at 2012-05-02 11:00:47:
你的代码有点乱,
虽然只是测试代码,但是在别人看的时候你定义的任何变量最好都是有意义的或者注释过的,
我对C不太了解,,但是你在定义循环变量int i 和int j 的时候为什么要在循环外面定义呢?这样对程序的 ...

我用C#来实现看看。。。
从前我只是一只被人看不起的小菜鸟,经过这么多年的努力拼搏,奋发图强之后,我终于成功的成长为了一只老菜鸟!www.smallerpig.com
4楼2012-05-02 11:01:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

6865804

荣誉版主 (文坛精英)

smallerpig

引用回帖:
4楼: Originally posted by 6865804 at 2012-05-02 11:01:52:
我用C#来实现看看。。。

没我想的那么简单,先吃饭等晚上看看有没时间
从前我只是一只被人看不起的小菜鸟,经过这么多年的努力拼搏,奋发图强之后,我终于成功的成长为了一只老菜鸟!www.smallerpig.com
5楼2012-05-02 11:24:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

6865804

荣誉版主 (文坛精英)

smallerpig

CODE:
        public static void Main()
        {
            int n, i, j;
            int num = 0;//输出数
            Console.WriteLine("请输入一个整数:");
            n = int.Parse(Console.ReadLine());
            Console.WriteLine("你输入的是{0}",n.ToString());
            for (i = 1; i <= 2 * n - 1; i++)//行
            {
                for (j = 1; j <= 2 * n - 1; j++)//列
                {
                    if (i <= n && j <= n)
                    {

                        if (i + j <= n) { Console.Write("*"); }
                        else
                        {
                            num = 2 * n - i - j + 1;
                            Console.Write("{0}", num);
                        }
                    }
                    if (  i <= n&&j > n)
                    {
                        if (2 * j - i - j < n)
                        {
                            num = j+1 - i;
                            Console.Write("{0}", num);
                        }
                        else
                        {
                            Console.Write("*");
                        }
                           
                    }

                    if (i > n && j <= n)
                    {
                        if (2 * i - i - j < n)
                        {
                            num = i + 1 - j;
                            Console.Write("{0}", num);
                        }
                        else
                        {
                            Console.Write("*");
                        }

                    }

                    if (i > n && j > n)
                    {
                        if (i + j > 3 * n - 1)
                        {

                            Console.Write("*");
                        }
                        else
                        {
                            num = i + 1 + j-2*n;
                            Console.Write("{0}", num);}
                    }

                }
                Console.WriteLine("\n");
            }
            Console.ReadLine();
           
        }

从前我只是一只被人看不起的小菜鸟,经过这么多年的努力拼搏,奋发图强之后,我终于成功的成长为了一只老菜鸟!www.smallerpig.com
6楼2012-05-02 14:28:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

6865804

荣誉版主 (文坛精英)

smallerpig

已通过,可实现
从前我只是一只被人看不起的小菜鸟,经过这么多年的努力拼搏,奋发图强之后,我终于成功的成长为了一只老菜鸟!www.smallerpig.com
7楼2012-05-02 14:30:02
已阅   回复此楼   关注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的回帖

136391618

木虫 (正式写手)

物理骨灰迷

引用回帖:
6楼: Originally posted by 6865804 at 2012-05-02 14:28:57:
public static void Main()
        {
            int n, i, j;
            int num = 0;//输出数
            Console.WriteLine("请输入一个整数:";
            n = int.Parse(Con ...

你写的语言  我没学过  看不懂啊
爱因斯坦我来了
10楼2012-05-02 20:22:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 136391618 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 化学070300 求调剂 +11 哈哈哈^_^ 2026-04-12 11/550 2026-04-12 21:19 by 阳光向上666
[考研] 085600材料与化工,求调剂 +12 won_qii 2026-04-07 12/600 2026-04-12 17:02 by lhj2009
[考研] 297求调剂 +17 ORCHID1 2026-04-10 18/900 2026-04-12 09:59 by zhouwenxian
[考研] 327求调剂 +5 拾光任染 2026-04-06 5/250 2026-04-12 02:29 by 秋豆菜芽
[考研] 求调剂 +11 月@163.com 2026-04-07 13/650 2026-04-11 22:55 by BruceLiu320
[考研] 药学专硕调剂 +8 ? 一路生?花? 2026-04-10 10/500 2026-04-11 21:21 by zhouxiaoyu
[考研] 070300化学279求调剂 +19 哈哈哈^_^ 2026-04-08 20/1000 2026-04-11 20:43 by stoner78
[考研] 283求调剂 +22 那个噜子 2026-04-09 22/1100 2026-04-11 10:41 by 逆水乘风
[考研] 材料与化工调剂 +12 否极泰来2026 2026-04-10 13/650 2026-04-11 00:28 by wangjihu
[考研] 吉大计算机技术331分,英语六级,求调剂 +3 峰峰021116 2026-04-09 3/150 2026-04-10 20:01 by chemisry
[考研] 08工学 309分求调剂 +6 Yin DY 2026-04-08 6/300 2026-04-10 09:18 by Delta2012
[考研] 材料307分求大佬组收留 +17 Hll胡 2026-04-07 17/850 2026-04-09 10:53 by liuhuiying09
[考研] 328求调剂 +17 lftmya 2026-04-07 18/900 2026-04-09 08:05 by 5268321
[考研] 275 求调剂 +8 Lei812514 2026-04-07 8/400 2026-04-08 12:46 by chemisry
[考研] 电子信息346 +4 zuoshaodian 2026-04-08 4/200 2026-04-08 11:54 by zzucheup
[考研] 机械工程264学硕求调剂 +3 qiushangxian 2026-04-06 3/150 2026-04-08 01:53 by Linzejun
[考研] 调剂求助(生物与医药) +6 @6952 2026-04-06 6/300 2026-04-07 23:52 by lys0704
[考研] 307求调剂 +3 Youth@@ 2026-04-07 3/150 2026-04-07 09:25 by 小黑不怕难
[考研] 081200-11408-367学硕求调剂 +4 1_2_3111 2026-04-06 4/200 2026-04-07 08:13 by jp9609
[考研] 材料调剂 +5 小刘同学吖吖 2026-04-06 5/250 2026-04-06 18:34 by sherry_1901
信息提示
请填处理意见