zlq1252 发表于 2011-3-15 19:23:42

大家过来围观下啊。。。。

这个用for语句的嵌套怎样实现的求注释

风扫地 发表于 2011-3-15 20:13:57

本帖最后由 风扫地 于 2011-3-15 20:36 编辑

我曾经写过一个空心菱形的。。边界打印的判断。是用直角坐标系的直线方程来理解的。(横轴,竖轴)代码有点长,希望对你有所提示。。

#include "stdio.h"
void LingXing(int);
void main()
{
                int n;            
                printf("Please input a integer!");
                scanf("%d",&n);//边长为n..
               LingXing(n);
}
void LingXing(int n)
{
        int i,j;
        for(i=1;i<2*n;i++)//控制行边长为n,在横轴上就有2*n-1个位置
        {
                for(j=1;j<2*n;j++)//控制列    边长为n,在纵轴上就有2*n-1个位置
                {
                if(i<=n)          //上半个三角行
                                {
                        if(j==(n+1-i)||j==(n-1+i))      
/*
左上边的边界是直线,直角坐标系中的直线方程为X+Y=n+1,所以当行数为i(即纵轴y)是需要打印的坐标为(n+1-i,i)
而右上边的边界可以通过同行数的边界相加等于2n这个条件来算出,也可以通过直线方程来得到。。。(n-1+i,i)
如果是实心的判断条件改为j>=(n+1-i)&&j<=(n-1+i)   在边界之内。。
*/
                                printf("*");
                        else printf(" ");
                                }
                else          //下半个三角
                                {
                        if(j==(i+1-n)||j==(3*n-i-1))//j>=(i+1-n)&&j<=(3*n-i-1)
                                printf("*");
                        else printf(" ");
                                }       
                }
        printf("\n");//一行结束
        }
}

zlq1252 发表于 2011-3-15 20:37:58

无限感激中。。。。费解啊

风扫地 发表于 2011-3-15 20:42:22

本帖最后由 风扫地 于 2011-3-20 00:22 编辑


见笑。。
希望大家多多斧正。。

追梦1航海 发表于 2014-3-15 15:33:38

//这样的程序如何,神一样的,哈哈自己佩服自己
int main(int argc, char* argv[])
{
        int length=11,i,m;
        printf("请输入菱形中间长度奇数哦\n");
        //scanf("%d",&length);
        for(i=1;i<=length;i++)//行
        {
                for(m=1;m<=length;m++)//列
                {
                        if(i<=length/2+1)
                        {
                                if((length/2+2-i<=m)&&(length/2+i>=m))
                                {
                                        printf("*");
                                }
                                else
                                printf(" ");
                        }
                        else
                        {
                                if((m>=i-length/2)&&(m<=length+length/2+1-i))
                                {
                                        printf("*");
                                }
                                else
                                printf(" ");
                        }
               
                }
                printf("\n");
        }       
                               
        return 0;
}

Draem 发表于 2020-4-2 09:44:57

#include "stdio.h"
void LingXing(int);
void main()
{
                int n;            
                printf("Please input a integer!");
                scanf("%d",&n);//边长为n..
               LingXing(n);
}
void LingXing(int n)
{
      int i,j;
      for(i = 1;i < 2*n;i++)
      {
              if(i <= n)
              {
                      for(j = 1;j < 2*n;j++)
                      {
                              if(j >=n+1-i && j <= n+i-1)
                              {
                                      printf("*");
                                        }
                              else
                              {
                                      printf(" ");
                                        }
                                }
                        }
                        else
                        {
                                for(j= 1;j < 2*n;j++)
                                {
                                        if(j >i -n && j <= 3*n-1-i)
                                        {
                                                printf("*");
                                        }
                                        else
                                        {
                                                printf(" ");
                                        }
                                }
                        }
                        putchar('\n');
                }
}

Draem 发表于 2020-4-2 09:45:48

照着葫芦画个瓢{:5_109:}
页: [1]
查看完整版本: 大家过来围观下啊。。。。