啊哈磊_编程从这里起步

标题: 求解,哪里错了? [打印本页]

作者: 张牧言    时间: 2015-7-24 15:09
标题: 求解,哪里错了?
#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;
}
为什么上面这段代码,可以运行,啥都不显示?

作者: 981013    时间: 2015-7-24 15:09
本帖最后由 981013 于 2015-7-24 17:30 编辑
张牧言 发表于 2015-7-24 17:01
发了2次

\是转义字符所以不会被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
????????
作者: 981013    时间: 2015-7-24 15:50
[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]
作者: 张牧言    时间: 2015-7-24 16:56
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;
}
作者: 张牧言    时间: 2015-7-24 16:58
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;
作者: 张牧言    时间: 2015-7-24 16:59
复制过来有些乱了
作者: 张牧言    时间: 2015-7-24 17:01
发了2次
作者: 张牧言    时间: 2015-7-24 17:54
981013 发表于 2015-7-24 17:28
\是转义字符所以不会被printf显示,例如

就只会显 ...

谢谢啦!!!!!!!




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2