A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 37°天黑 中级黑马   /  2015-4-9 22:11  /  1184 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

{:3_50:} 用C语言如何输出菱形啊?想了好久,我只能输出正三角形,求大神的详细解释!

5 个回复

倒序浏览
{:3_60:}没人吗,坐等啊!
回复 使用道具 举报
  1. #include <stdio.h>
  2. #include <math.h>
  3. //我要用abs函数;
  4. int main(int argc, const char * argv[]) {
  5.     int row = 0;
  6.     printf("请输入想要打印的行数:");
  7.     // 由于输出的时菱形,所以行数恰好等于最多行的*个数;
  8.     scanf("%d",&row);
  9.    
  10.    
  11.     for(int i = 1;i<=row;i++)          // 外循环,确定当前打印第几行
  12.     {
  13.         for(int j=0;j<abs((row+1)/2,i);j++)   // 这个循环用于打印前面的空白; 当前行空白的个数与当前行的关系是abs((row+1)/2,i)
  14.         {
  15.             printf(" ");
  16.         }
  17.         int starCount =((row+1)/2-abs((row+1)/2,i))*2-1;  // 当前行*的个数与行的关系是((row+1)/2-abs((row+1)/2,i))*2-1
  18.         for(int m = 0;m <starCount;m++)       // 这个循环用于打印后面的*;
  19.         {
  20.             printf("*");
  21.         }
  22.         printf("\n");
  23.     }
  24.     return 0;
  25.    
  26. }
复制代码


有好方法,一定教我啊...
回复 使用道具 举报
楼上思路不错,赞一个
回复 使用道具 举报

#include <stdio.h>

int main(int argc, const char * argv[])
{
    //
    printf("请输入一个整数\n");
   
    int x = 0;
   
    scanf("%d",&x);
   
    int y = x;
    int y1 = 1;
   
    //输出多少行

        for (int i = 0; i<x; i++)
        {
            y--;
            
            for (int a = y; a<=y&&a!=0; a--)
            {
                printf(" ");
            }
            //每行输出几个
            for (int j = 0; j<=i; j++)
            {
                printf("* ");
            }
                printf("\n");
        }
//-----------------------------------------------------------------------------
        for (int i1 = x; i1<=x && i1!=0 ; i1-- )
        {
            for (int a1 = 0; a1<y1; a1++)
            {
                printf(" ");
            }
            y1++;
            for (int j1 = 1; j1<i1; j1++)
            {
                printf("* ");
            }
                printf("\n");
        }

    return 0;
}

一个正三角一个倒三角
回复 使用道具 举报
都是大神啊,向你们看齐:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马