搜索
查看: 607|回复: 8
打印 上一主题 下一主题

求解,哪里错了?

[复制链接]
跳转到指定楼层
楼主
发表于 2015-7-24 15:09:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
     int a,b,c,d,e,f;
     for(a=1;a<=6;a++)
    {
        for(b=1;b<=6;b++)
        {
               for(c=1;c<=6;c++)
               {
                         for(d=1;d<=6;d++)
                         {
                                     for(e=1;e<=6;e++)
                                     {
                                                  for(f=1;f<=6;f++)
                                                   {
                                                                if(a+b+c==c+d+e==e+f+a)
                                                                printf("  %d\n / \ \n %d %d\n /  \\n%d_%d_%d",a,f,b,e,d,c);
                                                    }
                                     }
                         }
               }
        }
}
                                       
system("pause");
return 0;
}
为什么上面这段代码,可以运行,啥都不显示?

最佳答案

查看完整内容

\是转义字符所以不会被printf显示,例如 [mw_shl_code=c,true] printf("\ ");[/mw_shl_code] 就只会显示一个空格,负责任的编译器还会给个warning 要显示\,可以这样: [mw_shl_code=c,true]printf("\\");[/mw_shl_code]这里帮你改好了 [mw_shl_code=c,true]#include #include int main() { int a,b,c,d,e,f,g; for(a=1;a
沙发
发表于 2015-7-24 15:09:31 | 只看该作者
本帖最后由 981013 于 2015-7-24 17:30 编辑

\是转义字符所以不会被printf显示,例如
[mw_shl_code=c,true] printf("\ ");[/mw_shl_code]
就只会显示一个空格,负责任的编译器还会给个warning
要显示\,可以这样:
[mw_shl_code=c,true]printf("\\");[/mw_shl_code]这里帮你改好了
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,b,c,d,e,f,g;
    for(a=1;a<=6;a++)
    {
        for(b=1;b<=6;b++)
        {
            for(c=1;c<=6;c++)
            {
                for(d=1;d<=6;d++)
                {
                    for(e=1;e<=6;e++)
                    {
                        for(f=1;f<=6;f++)
                        {
                            if(a+b+c==c+d+e && c+d+e==e+f+a)
                            {
                                printf("      %d  \n",a);
                                printf("    /  \\   ");
                                printf("\n");
                                printf("   %d     %d  ",f,b);
                                printf("\n");
                                printf(" /        \\   ");
                                printf("\n");
                                printf("%d_____%d_____%d\n",e,d,c);
                                g=g+1;
                            }

                        }
                    }
                }
            }
        }
    }
    printf("%d",g);
    system("pause");
    return 0;
}[/mw_shl_code]
板凳
 楼主| 发表于 2015-7-24 15:10:38 | 只看该作者
????????
地板
发表于 2015-7-24 15:50:25 | 只看该作者
[mw_shl_code=c,true]a+b+c==c+d+e==e+f+a[/mw_shl_code]
这种比较方式是不正确的
如果你这样写,电脑会先计算
[mw_shl_code=c,true]a+b+c==c+d+e[/mw_shl_code]
再把得到的值(true或false)和e+f+a比较,所以if后面的条件一直不成立,所以一直没有输出。
改成这样:
[mw_shl_code=c,true]a+b+c==c+d+e&&c+d+e==e+f+a[/mw_shl_code]
5#
 楼主| 发表于 2015-7-24 16:56:38 | 只看该作者
981013 发表于 2015-7-24 15:50
这种比较方式是不正确的
如果你这样写,电脑会 ...

谢谢,我改了以后为什么三角形右侧的腰显示不出来
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c,d,e,f,g;
        for(a=1;a<=6;a++)
    {       
        for(b=1;b<=6;b++)
        {
                        for(c=1;c<=6;c++)
                        {
                                for(d=1;d<=6;d++)
                                {
                                        for(e=1;e<=6;e++)
                                        {
                                                for(f=1;f<=6;f++)
                                                {
                                                        if(a+b+c==c+d+e && c+d+e==e+f+a)
                                                                {
                                                                        printf("      %d  \n",a);
                                                                        printf("    /  \   ");
                                    printf("\n");
                                                                        printf("   %d     %d  ",f,b);
                                    printf("\n");
                                                                        printf(" /       \   ");
                                    printf("\n");
                                                                        printf("%d_____%d_____%d\n",e,d,c);
                                    g=g+1;
                                }
                           
                        }
                    }
                }
            }
        }
    }

      printf("%d",g);                                 
        system("pause");
        return 0;
}
6#
 楼主| 发表于 2015-7-24 16:58:03 | 只看该作者
981013 发表于 2015-7-24 15:50
这种比较方式是不正确的
如果你这样写,电脑会 ...

谢谢,为什么我改了以后三角形右侧显示不出来
代码如下
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c,d,e,f,g;
        for(a=1;a<=6;a++)
    {       
        for(b=1;b<=6;b++)
        {
                        for(c=1;c<=6;c++)
                        {
                                for(d=1;d<=6;d++)
                                {
                                        for(e=1;e<=6;e++)
                                        {
                                                for(f=1;f<=6;f++)
                                                {
                                                        if(a+b+c==c+d+e && c+d+e==e+f+a)
                                                                {
                                                                        printf("      %d  \n",a);
                                                                        printf("    /  \   ");
                                    printf("\n");
                                                                        printf("   %d     %d  ",f,b);
                                    printf("\n");
                                                                        printf(" /       \   ");
                                    printf("\n");
                                                                        printf("%d_____%d_____%d\n",e,d,c);
                                    g=g+1;
                                }
                           
                        }
                    }
                }
            }
        }
    }
      printf("%d",g);                                 
        system("pause");
        return 0;
7#
 楼主| 发表于 2015-7-24 16:59:05 | 只看该作者
复制过来有些乱了
8#
 楼主| 发表于 2015-7-24 17:01:03 | 只看该作者
发了2次
9#
 楼主| 发表于 2015-7-24 17:54:30 | 只看该作者
981013 发表于 2015-7-24 17:28
\是转义字符所以不会被printf显示,例如

就只会显 ...

谢谢啦!!!!!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表