鱼C论坛

 找回密码
 立即注册
查看: 2591|回复: 6

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

[复制链接]
发表于 2011-3-15 19:23:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
D4SEN)DSW0${O27RFJN4C(9.jpg   这个用for语句的嵌套怎样实现的求注释
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 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");//一行结束
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-3-15 20:37:58 | 显示全部楼层
无限感激中。。。。费解啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-3-15 20:42:22 | 显示全部楼层
本帖最后由 风扫地 于 2011-3-20 00:22 编辑

1

1

见笑。。
希望大家多多斧正。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 09:44:57 | 显示全部楼层
  1. #include "stdio.h"
  2. void LingXing(int);
  3. void main()
  4. {
  5.                 int n;              
  6.                 printf("Please input a integer!");
  7.                 scanf("%d",&n);//边长为n..
  8.                  LingXing(n);
  9. }
  10. void LingXing(int n)
  11. {
  12.         int i,j;
  13.         for(i = 1;i < 2*n;i++)
  14.         {
  15.                 if(i <= n)
  16.                 {
  17.                         for(j = 1;j < 2*n;j++)
  18.                         {
  19.                                 if(j >=n+1-i && j <= n+i-1)
  20.                                 {
  21.                                         printf("*");
  22.                                         }
  23.                                 else
  24.                                 {
  25.                                         printf(" ");
  26.                                         }
  27.                                 }
  28.                         }
  29.                         else
  30.                         {
  31.                                 for(j  = 1;j < 2*n;j++)
  32.                                 {
  33.                                         if(j >i -n && j <= 3*n-1-i)
  34.                                         {
  35.                                                 printf("*");
  36.                                         }
  37.                                         else
  38.                                         {
  39.                                                 printf(" ");
  40.                                         }
  41.                                 }
  42.                         }
  43.                         putchar('\n');
  44.                 }
  45. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 09:45:48 | 显示全部楼层
照着葫芦画个瓢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 07:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表